calls me every name under the sun. I just feel so low. He works hard at work and is a good man in general
This is worrying, the argument should stay focused on the disagreement, the minute this gets into name calling it becomes abusive. You need to stop this the minute this starts by asking him to stay on point.
He is not a good man if he resorts to name calling. I have been married for over 20 years and even when Dh and I have been poles apart on something neither of us has resorted to name calling. If you can listen to podcasts Dr Phil does one called Phil in the blanks and has a whole heap of them on relationships titled how fun are you to live with. He addresses lots of conflict areas.
I find it very interesting that he expects you to pay for the food shopping. Does he see you in the role of the housewife, responsible for domestic chores such as ironing, cleaning etc? You need to try to have a calm talk about housework and responsibility.
I am a SAHM with teenagers so obviously I do the vast majority of the housework, but right now I am out of action with a bad back. Dh has done all the ironing, laundry, folding clothes, cooking, food shop etc. He does see this as a novelty. But in all the years I have been a SAHM I have never been taken for granted, he appreciates my role and shows it.