we had a similar experience and found that once we fixed it at home it flowed very quickly into different situations like at the shops. What worked best for us was simply ignoring it and not rewarding the behaviour with ANY attention - be it responding and rushing to him or telling him to stop. Once the screeching or unwanted behaviour was replaced by more positive behaviour THEN we would pay him attention and reinforce the behaviour we wanted.

Not all will agree with this process however we found that it worked really well for us. When you are at the shops and he starts simply ignore it - stuff what everyone else thinks - and chances are those who give you looks don't have children, have no idea and aren't worth the time of day.