My five year old still throws tantrums in the store when I don't buy him what he wants. I've always just ignored him until I get so embarrassed by people's stares that I drag him into the shopping cart and pinch him to stop crying. Sometimes, I give in and just buy whatever it is so I can get him out of the store. When will he outgrow this?
While patience is not the strong suit of even a five year old, by this age there should be an expectation that he needs to learn to begin to build up levels of what's referred to as "delayed gratification". Meaning waiting while someone else's needs are met until your own needs get addressed. Learning to deal with disappointment - otherwise known as "NO", requires these same skills. Notice I use the words learn and skills -this means they need to be taught not just waited out with an expectation that years passing will provide these tools. (There are many adults in the workplace who still throw tantrums, don't wait or take no for for an answer very well.)
Equally important points to note are that you, in fact, have been teaching him all along. You've taught him that when he throws a fit you can lose it too by dragging and pinching him. You've taught him that sometimes he is successful in this behavior because he gets his way. When we are successful with something we will continue to use those same strategies.
So in order to help you help him you will need to change your own behavior. Let him know before you go to the store what positive behavior you expect from him i.e. stay by the cart. Let him help you pick out some of the things you would be buying anyway but give him choices you can live with too. If he's successful in his store visit, tell him specifics about what you liked about how he behaved and his "reward" is to get to do a little something extra with you i.e. go for a walk when you get home. Don't "buy" his good behavior with a monetary reward. Know that he will test you with his tried and true tantrum technique just to see if you won't fall for it anymore. When you're telling him what you expect of his behavior, tell him that if he doesn't behave then you will leave the store. And do it. Do not wait until you are so angry that you are ready to drag and pinch. Do it while you are calm and in control. You can either stay with him by the car - he'll be in his car seat but you don't have to sit inside the enclosed car while he's screaming. Or if he calms down you may decide to try again if you're desperate for groceries. Or if not, you need to realize that you are just going to have to go shopping without him next time and take him home for today.
Many parents think this means the child has won if they don't get their chores done. Who is actually "winning" if you're stressed to the max and your child has had a breakdown? Milk can wait. And it's not about winning or losing it's about your relationship. Once your child learns you mean business, will calmly follow through with what you say and won't hurt him any more he will begin learning these new skills. He will also see that you posses them as well and that's a good thing.