There is a ton to unpack here.
I'm not a doctor.
He needs to see one. Go with him. Insist on an appointment, and go along. Either you'll get confirmation of cancer (FYI if he has stage 4 anything, he probably wouldn't have the strength to shove you or anyone else around) or the jig will be up. I'll bet the farm it's the latter.
He's an addict. He will bleed you dry, because cocaine or whatever he is on shouts A LOT louder than you or the kids ever do.
Being that he was in a car with a child and drugs, has child protective services ever been called? Has his shoving ever been against your children? You do not have to take it. Full stop, ever. Even with "just one" incident in your collective past, it was already one incident too many. At some point, the law will be involved, sooner or later. I highly recommend you separate from him and take the kids with you, because it is likely to get worse rather than better.
How much worse? You already know he steals from you. He already lies. He already smacks you around. Is there something which will magically make you see what a shitshow this is? Does one of your children need to be hurt? Does CPS have to be called, or the cops? Do you have to get a permanent injury? Does your entire savings have to be wiped out?
Because you've got nearly no wiggle room before this turns into something frighteningly permanent.
If you are absolutely dead set against leaving, at least take some steps to protect yourself and the kids, for the love of God. Open a separate bank account, don't give him access to it, and have your paycheck directly deposited into it. Make sure your neighbors have the keys to your house and they know your kids well (and if there are neighborhood kids around, even better), so your kids have a safe place to go if things get really bad.
Let go of the nostalgia of what he was like before. He's not that way now. That nostalgia isn't doing you any favors; it's just keeping you from acting.
Want to know the best and really only way to deal with this? Let him hit rock bottom and make the continuation of your marriage conditional on him getting help -- serious help, as in a month in a rehab clinic where he stays there overnight.
This is a serious situation. Your love and care aren't going to be enough to fix it.
And I would suggest also, please get some counseling and talk to an impartial professional about your self-esteem. Yes, you've been with him your entire life. But you have (hopefully) more than twice that left after today. Things don't have to be this way, and you don't have to stay.