Girl, you cant' stop his snark. You can get sad, lash out and react like you do, but he'll still do it. You can lay him flat with some snarky returns (like I do) but he'll still do it.
Your most EFFECTIVE tactic in ALL the scenarios you listed is: Keep him the hell out of the shopping.
Men do NOT understand shopping and budgeting. I keep our family on a razor sharp budget, and THEN save even beyond that because I am the GODDESS of saving, but if he ever SEES me shop??! Oy vey, I'm buying way too much stuff. Because yes, I WILL BUY 4 boxes of Raisin Bran when it's half price rather than one box and then another when it goes back to full price. You know? EVERY week I save over $30 on store deals alone transferred to .50 cents off/gallon with the gas points, and get EVERYONE"S Christmas shopping done ON SALE with free shipping and maximum coupon codes, but he CANNOT SEE me do it, or he's all in my business. Meanwhile, he'll go out and buy very little, spend a fortune, and pay too much to ship it. You know? Keep him AWAY from you when you shop. You knew he was being preposterous about the less than $60 of groceries he would happily eat and never notice was missing from the bank. You SHOULD have left him in the car! I feel your pain, but that's the only advice I have.
As for the remarks. If I don't jab my husband with some return scorching snark (no more confrontational than a hissy fit with a man chasing you down and begging for mercy :) I WILL CALMLY spell out why what he said was wrong, not fair, and mean. And he does apologize. He'll apologize if I get hysterical too, but I feel better when I maintain my dignity. But again, this is "managing the problem" not solving it. I don't think grown men can relearn how to think before they talk, personally.
Don't go shopping with them!