It's normal for a child to start trying things that are going to get him what he wants. If there's no payoff such as temper tantrum=getting out of nap, etc..then the tantrums will lesson and stop. You much be consistant though..and not give in to his wants when he's throwing a fit. It's very hard to do that in public especially, but you must.
If he throws a fit in the store because he wants something, or he wants down and out of cart..then pick him up and leave the store and tell him you can't shop because of how he's acting. Go back later when he's calm, and continue the lesson until he understands there is no payoff. No anger, no dispute, no arguing..just firmness and parenting on your part.
I promise it works!
Also for parenting issues like that one try John Rosemond's website for parents..he's great!