A few ideas:
1) Incentivize the opposite of the negative behavior he's exhibiting. In your example, perhaps award him points/tokens for classifying the type of mistake he may have made. Or try a mix of negative + positive reinforcement , ask him to put a dollar into different "mistake jars" and he can cash out after playing 10 back-to-back games without making that mistake any more. You can sweeten the deal by "matching" his dollar with one of your own.
He doesn't have to "own" up to it ... just being aware that they are measured in a tangible form (jar filled with money) is a first step to acknowledging that he is making them and cannot conveniently forget that they are "accumulating".
2) Another form of behavior training is to base a lesson plan entirely on the mistake like an eye exam under time-pressure.
Quiz Position #1 : Is Move A better or B better?
Quiz Position #2 : Is Move A better or B better?
where each position contains the specific kinds of mistake he would tend to make.
Maybe drop the difficulty level to where he's getting atleast 60% of them right, and ramp it upwards?
3) Re-directing the identity of the mistake maker : Use/Make up games with other people go about making the exact same mistakes that he does and see if he's more open / less self-conscious about discussing the flaws of other people's moves. His ego no longer becomes part of the equation ... besides, the more negatively you speak about the stupidity level of said mistake, the more likely he's going to remember it when he's "just about" to do the same thing.
You might even start off with Anand's famous Petroff game :)
I have a chess student that gets extremely uncomfortable when it comes time to discuss a mistake he made. It's frustrating when this happens to a coach because at the moment the student needs to be most attentive, they become their most self-conscious and shut down. As a result he relives the same mistake over and over in future games. Any suggestions?