これは難しいご質問ですね・・・ある意味。
前者の方(「To whom do you teach mathematics?」)が、
実は文法的に正しいです。正確に言えば。
ただし、両方は実は自然とされているので、
どちらも、問題なく使えます。
しかーし。
全体的に言えば、「Who do you teach mathematics to? 」の方が、
使われる頻度が高いかと思います。
なぜならば、「who」と「whom」を正しく使い分ける人は、
(ネイティブでも)あまりいないため、簡単なほうの「who」を使った方が、
手っ取り早いという・・・笑
じゃあ、せっかくなので、違いを説明しましょうか!
・「who」は主に【主語】として使われます。
~~~~~~~~~~~~~~~~~~
Who ate my sandwich?
誰が私のサンドウィッチを食べた?
Who loves you?
誰があなたのことが好き?
~~~~~~~~~~~~~~~~~~
ほら、簡単ですね~。
・一方、「whom」は【前置詞】として使われます。
~~~~~~~~~~~~~~~~~~
To whom was the letter addressed?
手紙は誰宛に書かれた?
With whom will you go?
誰と行く?
~~~~~~~~~~~~~~~~~~
要は、動詞の、主語との関係性を表している場合、
「whom」が正しいというわけです。
しかし、上記の例文以外に実は、
どっちが正しいかが、本当に分からなくなる、悩ましい場合があります。
たとえば・・・
~~~~~~~~~~~~~~~~~~
「Who do you love?」ではなく、
「Whom do you love?」が実は文法的に正しい。
~~~~~~~~~~~~~~~~~~
恐らく、「Who do you teach mathematics to?」のように、
「Who do you love?」を使ってしまう人が多いでしょう。
実際そうです。
「whomが無駄に難しいから使わないでおこう」
という考え方が一般的になってきているので、
結果的に「Who do you love?」・「Who do you teach mathematics to? 」でも正しいと認識されています。
なので、判断に迷った場合は「who」でもまったく問題ないです。
あまり深く考えないでください。
長くなったけれど笑
ご参考になれれば幸いです。