New Here, and I'm desperate for help with my ADHD partner

I found this wonderful website while trying to do some research on ADD/ADHD, and have finally summoned the courage to post. I've been with my boyfriend for 1.5 years. He has diagnosed ADD, and is on medication. Typically, he is one of the most caring, kind hearted people I've ever met. He dotes on me, is attentive and tries hard to keep his ADD under control. He tries his hardest to listen and pay attention to me. He is very loving and patient. In almost all areas, he's the best man I could have hoped for. However, despite all of his wonderful qualities, I am at the brink of ending things. There are times when he becomes a completely different person. I can almost visibly see him change from his usual kind hearted person, into some sort of monster. It usually happens when I express to him that I'm frustrated or upset about something. It seems that at the slightest whiff of conflict brewing, he turns into this monster. He will instantly get a snide, condescending and rude attitude. He become aggressive and combative.  Nowadays, he starts namecalling as well. He turns completely irrational and quite honestly frightens me when he gets like this.

A perfect example: the other day was my birthday, and we had plans to go out for the day. We live in separate apartments right now, and I woke up on my birthday expecting a phone call or something from him...but he didn't contact me until about 2 pm. So all day, I sat by myself, which upset me a bit. I hated being lonely on my birthday. To be fair, we had done things to celebrate my birthday in the days prior, but I was still sad to be alone for most of the day on my birthday.. When he finally came to get me, I expressed to him that I was sad because I'd been alone on my birthday. He immediately turned into a monster. He began screaming at me, telling me I'm ungrateful and if I was so ungrateful, I could spend my birthday alone. He whipped the car into a U-turn (on a very busy 4 lane road), turned the radio up to maximum volume, and continued to scream at me and tell me how I ruined everything and I was the reason he was yelling. When I tried to turn the volume down (the car was shaking it was so loud), he hit and twisted my arm and screamed at me to never touch his things. I started crying at this point, and he continued to yell at me and tell me that I ruin everything, all the while driving 60 mph on a 40 mph speed limit road, and texting on his phone. I begged him to slow down and stop looking at his phone, but he refused. The only thing that gets him out of these moods is when I'm reduced to sobbing and telling him how sorry I am and how much I love him....even if I have nothing to be sorry for, he still screams at me until I apologize. After I do this, he will eventually calm down and tell me how glad he is that I realized that I'm wrong and mean. Then, a couple days later, he will realize how awful he was, and will be extremely repentant. He then goes back to being the normal, sweet man that I love. He will dote on me and tell me how sorry he is and will be nothing but kind. 

I'm at a loss here. I love him so much, and if it weren't for these outbursts, things would be close to perfect. But these episodes are making my life hell. I feel hopeless and confused and lost. I feel like the only way to keep him from becoming a monster is to never tell him when I'm upset or frustrated. It kills me to have to put my own emotional wellbeing aside in order to keep him from screaming at me even more, but I've learned that if I just hold in all my sadness and frustration, it minimizes the outbursts from him. I'm just not sure that I'm willing to live a life where I'm not allowed to be upset. He really is trying to get better; that's what has kept me with him. He goes to therapy every week and is trying different things to get better, but nothing seems to be working. I'm just lost, and could use any words of advice/support/encouragement that anyone has. I'm sorry for such a long post...there's 1.5 years of frustration and confusion pouring out all at once.