Why do guys say such mean things?

I know that my boyfriend loves me, he has proved it in many ways but when we get into a really bad fight he always starts saying horrible things to hurt my feelings. He will say things like "I hate you", "Get out of my life", "Your crazy", and throw my past in my face...

He never comes out and says I'm sorry after either, he just says he only said those things because he was so mad. He's broken up with me a few times too. He has done it again but this time I'm scared it is for real... He says he still loves me and wants to change his mind but he wont. That the hard part will just be the first 2 or 3 weeks and then after that he will forget about me... Is this true? What can I do to get him to change his mind?