A while back I started a job at a place an old friend of mine (who is 24 years old) works at, who is quite high up there. Although it's only a shop and not very glamorous, I had been unemployed for several months and so I couldn't just turn it down.
Anyway, the guy in a position of power has proved very difficult to work with. There has been times where he's accused me of "disrespecting him as a supervisor" just because I would be undertaking tasks that he's asked me to do. I was one time stacking the bottom shelf and I was sat on the floor, and whilst there was other people in the shop, he started barking orders at me, like "get up!", which was embarrassing. There was one occasion where he actually waited for me to start my shift and as soon as I came in I was subject to a barrage of abuse. Why? Because a) I didn't come in an hour earlier like he expected me to, even though he previously asked me three times if I could, and I said that I couldn't, and b) Because I turned up on time, rather than however earlier he wanted me in, and was just finishing my cigarette off before coming in. Saying "why can't you just ****ing respect me?!" And when I told him that I didn't approve of being spoken to in such a way, he pulled the whole "oh, don't even say that!" ****. Not long after I started, he once got irate with me for innocently asking who I should go to for a reference. Then whenever a customer asks me something, he always waits until I begin speaking and then he just cuts me off and speaks over me, even when he's doing something else. He pulls rank on me all the time over stuff he has no authority over. Certain workplace gossip he "forbids" me from mentioning to other members of staff. Giving things to certain customers he doesn't like.
A while back we both had the same day off, and he wanted to do something, but I wasn't sure if I would, because I had things to do during the day, and then was to meet another friend that evening, which I actually did mention to him the day before, and I even said to him that I would let him know if I had any free time. So, the next time I'm in work, he says he's "pissed off" at me because I didn't get back to him, and I'm subject to yet more bull****. He actually even called me a liar, and got even more angry when I told him that it really wasn't a big deal, and that he was overreacting. I mentioned that I told him I was busy and he said "not too busy to go out with your other friends though, right?!". He demanded an apology and eventually I had to swallow my pride, just because I couldn't be dealing with his **** for four hours.
But the thing is, he's always been a difficult person anyway. Very short tempered, very needy, very quick to criticise and judge you, and stick his nose into things that don't concern him. In the past he'd send me texts saying "answer your ****ing phone for once!" if I missed a call for him for whatever reason, or "answer your ****ing door!" if he tried calling for me and I wasn't in. Accusing me of lying or making excuses if I'm unable to do something with him. We've been in bands in the past, and when I've had other plans with other people so been unable to practise, he's not taken it well. In one instance, I told the other bandmate I wouldn't be able to play on a particular day because I had some Uni stuff to sort out. So on that day he called me to ask me, even though I couldn't and said as such. The following day, I got a phonecall from him, basically having a go at me for not letting him know. He actually took time out of his day to do that. And when I was unemployed, he would act like it was his business and talk to me in an irate manner, whilst making assumptions about me and stating them as facts, like that I've obviously not been applying for any jobs, and that I'm never going to get a job purely based on the fact that one time I slept in until 1PM. As mentioned, he likes to stick his nose into my business a lot, and gets offended when I politely tell him that I don't need his help with anything and I am confident enough to sort my own stuff out by myself.
The thing is, when he's not acting like a prick, he's a very loyal friend. He's always willing to do me favours. He always pays me huge compliments and genuinely seems happy for me when something good happens. And when something bad happens, he seems genuinely concerned. Most of the time he does apologise for his dickish behaviour too, and says stuff like "I don't want to alienate you." I've been friends with him for over a decade, since school days. We've been in bands together. When he's in a good mood we always have a good laugh together.
A bit of context though. He has problems at home with his father, who has always acted overbearing towards him and is always picking arguments with him and acting aggressive and belittling him. He is obviously insecure, because he always talks himself up even when it's not true. He's even said, regarding another member of staff, "I feel sorry for her, because I'm pretty much her only friend", which I doubt is true. Our band broke up because him and the other bandmate would just fall out all the time, and the other bandmate even said to him that he has anger issues. He always seems to have some kind of personal problem going on, and strikes me as someone who is very self-conscious. He always points out stuff about himself, and says things like "I'm just a laid back guy, people tell me that all the time" or "I'm a mature person" or "I'm just nice to people."
I've just been doing a lot of thinking lately, and I've realised just how sick of his bull**** I am. Literally none of my other friends ever get pissed off at me the way he does, or say insulting things to me just because I don't do as I say. And I feel just as angry at myself for not pulling him up on it more, because I feel like a pushover. But it's because I know just how volatile and hostile he can be, and I just don't want to fall out with him or make things worse. But I don't want to lose an old friend who is, when it counts, very loyal. What are your thoughts?