Re: I take out my frustration on loved ones.
Let me first compliment you on your ability to perceive your own shortcomings, and seek help in finding a solution. The fact that you want badly to change gives you a much greater chance of overcoming this aspect of your personality.
I would start by making you girlfriend aware of you knowledge of how badly you feel for being hurtful to her when she does not deserve it. Letting her know you are working on this will go a long way towards helping both of you grow toward a more healthy relationship.
I encourage you to make up a few rules for yourself that you will not break.
Rule 1. I will not talk about myself unless it is positive.
Rule 2., I will not talk about others unless it is positive.
That is enough to work on forever actually. By focusing your thoughts on the positive, you will have to work on seeing what is positive, and it is there everywhere...just a bit harder to see at first. This will get easier and easier and you will become more and more positive.
Much of your quick turn towards lashing out in anger is due to habit. Habits can be changed by replacing them with other habits that are better. It will take much thought on your part, but the benefits will be quick and very satisfying. Just two simple rules that both require you to stop and think before saying a word. They give you a chance to listen, which makes your gf feel more important and loved. Put yourself in the backseat and let others get their points across without interruption.
Again, I admire you wish to better yourself in this way, you can do it. Going through life without change may be easier, but continuing to learn and change makes you a better and happier person. I wish you well.