He has absolutely no right to hit you, and tell him so - if he hits you or tries to then that's it, friendship over. And if he goes 'off on one' while out, ay you refuse to be embarrassed by him anymore and walk out. If your friendship means anything to him, he'll come back and apologise, and you can tell him hes got to learn to curb that tempper of his else one of these days it could get him into trouble, eg by picking on the wrong person.
Don't just rely on these two people for your social life, join a group or society, take evening classes, a book reading group at the library, or go on coach trips - you'll soon make friends - is there a group for your health problem? look on the internet and find out. Don't always be in for this person, if he demands to know where youare going, tell him it's non of his business, and if he gets really nasty then I'm afraid you'll just have to get the police involved. Good luck