communication really is important, he needs to feel comfortable opening up to you and being honest about his feelings in order for either of you to have any kind of chance. how are you supposed to know what it is that he wants and doesn't want if he doesn't talk to you about it? i'd say start there first because that's pretty much the root of all the crap in your relationship.
when he gets in the kind of mindset that it's "his way or the highway" you have to tell him that he's being inconsiderate and that it would be better for both of you to come to some kind of agreement. if after you try compromising, he still wants to act spiteful and stupid because he had to cave a little, i'd say move on, he's selfish, he's stubborn and he's not worth your time. he still has a lot to learn but you sure as hell don't have to be the one to take all the abuse to teach him.