I'm sorry you're having to experience this lack of professionalism in your office. I have a couple of thoughts, though.
I'd arrange a private, after-work appointment with your physician, and ask him to explain to you what he feels your role is within the practice. If this does not match what you think you're expected to do, then relate to him what you feel your responsibilities are as a certified coder. Take the time to explain the concept of correct coding (from financial, patient care and compliance perspective), and ask him if this is what he expects you to do.
Here's what I suspect the problem might be....Find out what it is about your guidance that is ticking him off. Are you constantly downcoding him? If it's a private practice, he might be worried about money, so let him know that you can assist him with documentation tips to improve his bottom line. Coders are supposed to assist physicians, not be the self-appointed gestapo, so at least take a moment to consider your delivery, and your timing. If you're catching him mid-patient, he's not gonna love it, so perhaps scheduling coding training time is better than tackling him in the middle of the day. It sounds like every time you find a problem, you run right to him, regardless of what he's in the middle of. My doctors would behead me if I tried that, so I'm willing to bet that's what's making him nuts. Pick your battles and then schedule a time when he's not seeing patients....or get his approval to make coding changes without his having to consult on every little thing. Doctors can be funny people, but are typically able to see reason if you dangle it in front of them.
I'd also let him know that screaming at you in front of patients is certainly going to cause patient satisfaction issues--no patient wants to view that kind of drama; and screaming in front of other staff members is likely to cause morale problems. Let him know that this is no longer acceptable. Then you might point out that ICD-10 will certainly require his cooperation and your expertise, and this is not a good time to alienate his coder (you can say this nicely, but you get my drift...).
If after this kind of discussion, and after moving your meeting times with him to another time during the day or making coding changes on your own, things don't improve, then move on. This is not worth the aggravation.