When he will understand that your limit is the same every time he behaves in a socially unacceptable way, he will no longer do so, especially if you frequently highlight the desired behavior. You must be ready to take him aside and maybe even leave the place to make him understand how serious you are.
If you think that your child has enough attention, what could he be looking for? Could he be looking for limits? A “stop” that never moves, like the ones he sees on the streets? It is as if he was wondering how far you would let him go. “When will they stop me?” If you always react the same way and every time, he will know your limit, he will gain nothing by reaching it and his disruptive behavior should gradually disappear.
I also suggest going out soon and having someone babysit your child. Explain that you want to see your friends and have fun, not to punish him but because you need it. Tell him that some time, you will take him with you, but not this time.
Remember that it is in the nature of a child to make his parents happy, as long as his own affective needs are fulfilled. He needs to feel loved, important, valued, free to make some decisions, he needs to have fun with you and he also needs clear, constant and consistent limits.