I would say it's really a matter of immaturity. I used to be like this and am not so much any more. I'm not sure what can be done. For me personally I was just an asshole who thought he was right and got bothered when someone did something I thought was stupid or wrong. How do you make someone not immature? Idk. Open communication is the only thing I can think of. Say "when you say (insert thing here) I feel.... (insert feelings here)" ....or... "When you do (insert action here) I feel like you are (insert your impression of action here)" Also, it's a good idea to try to pry his thoughts and feelings out of him. Sometimes I can have alot of thoughts inside of me that I'm not necessarily unwilling to share, I just really need someone to help get them out. So communication and gentle (and depending on the person, strong) persistence is key.