I stayed in a relationship far longer than I should have and I can tell you this...YOU CAN'T CHANGE PEOPLE! I thought my boyfriend would change. I hated the way he treated me too but I thought he would just one day change for me. I can tell you honestly...I was the one who changed. He stayed the same. That was one of the reasons why we weren't compatible anymore.
You have been with this guy for 2 years...this is who he is. You are holding yourself back from someone out there who will love you, respect you, and treat you the way you wish to be treated...yes, you ultimately have to make your own decision and just go back and re-read your post...I read between the lines and heard your decision in your post...listen to your heart-you must do what is best for you...not worry about hurting his feelings. If he cared so much, he wouldn't be treating you the way he is.
YOU deserve to be happy...BUT I wouldn't recommend "rebounding" off to someone else right away...take some time to have fun with your friends and to really figure out what it is exactly that you want out of your next boyfriend...
Again, I believe you already know the answer to this...
Good Luck!