A couple of ideas:
(1) You can exploit the nasals in English to cover much of the ground. In English, vowels are nasalized before a nasal consonant in the same syllable. (The effect is not as a strong as a French nasal vowel.)
There are four French nasals:*
/ɑ̃/ as in an, en
Take the English word “song” and pronounce it slowly a couple of times. Now, do so again but do not pronounce the final “ng” sound. The vowel you land on is the one you want to hold. Try it in isolation.
/ɛ̃/ as in fin, pain
Using the same process, take the English word “pen” and stop before the “n”.
/ɔ̃/ as in mon, ton
Using the same process, take the English word “cone” and stop before the “n”.
/œ̃/ as in un, brun
Using the same process, take the English word “one” and stop before the “n”. Alternatively, shake your head and say “Uhn-uhn!”
Note: aside from “song”, these are all going to yield approximations! They are just to get the feel of how a nasal vowel is pronounced. The “cone” one in particular should actually be stopped “mid-vowel” to get a more accurate sound, since in English we pronounce “o” as /ow/ and that /w/ ruins it.
Another strategy is to write a set of contrastive words, such as fait /fɛ/ and fin /fɛ̃/. The teacher should first pronounce each one slowly, clearly, and distinctly, and say what they mean. Then they should ask the child to identify the one they will say. They should then say a string of them in random order until the child points to the correct one. Next, switch roles. The teacher points at the word and the child pronounces it. If they don’t pronounce it correctly, the teacher demonstrates again. Repeat until the child says them correctly. This exercise may need several repetitions. (I’ll try to think of other pairs and edit this answer, but I’m in a rush!)
A third strategy is to have the teacher record a clear, distinct nasal vowel and a clear, distinct oral vowel and send these two files to you. The child should then try to imitate what they hear, recording themselves. Then, they should listen carefully to their recording and compare it to what the teacher gave them. If they hear a discrepancy, they should try again. This self-analysis can be quite effective.
A final step would be to get a speech therapist to help your son physically understand how to place his tongue and so on, but that’s rarely necessary.
* In Parisian French, the distinction between /ɛ̃/ and /œ̃/ is not made. They are both pronounced /ɛ̃/.
Speaking an /o/, slowly let your head (not your neck!) sink to your chest.
Speaking an /a/, /oe/, or /ε/, slowly tip your head back.
Nasalization will happen automatically.
Feel what happens in your mouth. Now move your head back, trying to keep the feeling in your mouth and the sound you hear the same.
At 11, your son should still be able to catch the obvious and subtle differences between the French and English phonemes, but it becomes increasingly difficult with age, unless he has a musical ear (en français l’oreille musicale). Does he play a musical instrument?
I suppose you live in an English speaking country and his French teacher is probably not a native speaker. It would help to make him hear native speakers, both male and female. You could try audio books, French TV series, movies or cartoons on the Internet.
I have had the same problem with my own son who has been living in the USA for most of his life: he was mixing the different ways to pronounce the French
R. I had to repeatedly make him hear the difference between crier and griller and how the French distinguish one from the other not because of the initial consonant but because of how it changes the way we pronounce the
R that follows.
Listen and repeat, correct, hear the difference and repeat again…