Are you actually serious about wanting to stay with this man? Why??
You said several things about him that ought to be enough for you to leave him, on their own:
It isn't normal for men to check out women all the time. Men and women both sometimes notice attractive other people, but if they have any respect at all for their OH, they don't show it. He is showing an appalling lack of respect or care for you, and a lack of respect for the poor women he's learing at.
Then when you mention it upsets ypu, he blames you for his bad behaviour and refuses to change, despite knowing it, reasonably, upsets you.
He calls you a bitch and a cunt. I wouldn't stay a day longer with a man who called me a cunt. When you imagined your future husband, did you dream of someone who called you a cunt and leared at other women?
You seem to think that because he's stressed it makes all this OK. It doesn't. Especially as he's the one causing the stress. What about the stress you're feeling by being the only earner? Does he worry about the effect of that on you?
Why do you think it's your job to make things better? He's a vile man who takes advantage of you. It isn't our job to put right problems that he has created. Why are you taking care of his son? It's his son, so primarily his responsibilty, especially as he isn't working like you are. Why are you doing all the cooking and cleansing? He isn't going to work so should be doing most of that right now. And when he gets a job, you should be sharing those jobs.
He is showing you that he has little respect or care for you. You are falling over yourself to keep a man who doesn't deserve it. You would be so much happier without him.