He won't let you send your photos to your mum.
He reads your messages - massive invasion of privacy.
You're scared to tell him the truth.
He expects you to be sexually available whenever he wants (grim - so, are you having sex that you don't want, that you're coerced into for fear of his moods? Cos there's a word for that lovey)
He calls you thick.
He calls you stupid.
He doesn't want his son to be like you.
You do a normal thing like forget some shopping and he accuses you of neglecting him.
He flips out at you.
He goes mad at you.
It's a bad enough relationship that you wanted to talk to other men - or worse, you were only talking to male friends and he stopped you.
Just remind me why you love him and why he's your best friend?
My boyfriend would do NONE of that. Any of the time.
Somewhere along the way you've bought this idea that it's OK to be a shit some of the time. Although, from your list on just tis thread, it's not occasional, is it? It's actually not. I have had good and bad relationships. In not one has a man ever insulted me verbally, tried to guilt me into sex when I don't want it, read my messages, accused me of neglect to for a simple mistake...
The big worry is not that your son will be like you, but like him. Because he's going to grow up learning that this is what men do: disrespect their partners.
I know it's easier to say leave than to do it, but will you at least talk to Women's Aid? Please? If you stay, you at least need to know that he is wrong, not you, to protect a little of yourself, your self esteem. 