I think we have to be more consistent with children using today’s "new parenting" I used to have the same problem with my daughter at a 3 or 4 yrs. old ....I think the little buggers learn that while shopping they have card blanche to do what they want because mom doesn’t want to be embarrassed...they learn that we wont yell loudly because we don’t want the other mothers to know, how our little ones are misbehaving etc, & the kids pick up on this behavior.
I followed a friends advice who told me she would just leave her, cart and what ever was in it, right were it was. Pick up her child and immediately leave....telling him she was not going to tolerate this behavior "lets go". (she would have to go shopping again but, it worked)
It worked like a charm for me and I was able to have an easier shopping experience, my child was shocked the first time, but learned I had better behave if I want to shop with mommy....Try it.