I have a DS a similar age who sounds the same. we went for lunch in a cafe yesterday and he did exactly this - a few months ago it might have bothered me but I've been watching a lot of parents and toddlers when out and about recently...I've seen parents telling their children off on a constant loop 'don't do that dear' 'sit properly' 'not like that' 'what are you DOING', I've seen them ignore their kids completely, I've also seen them smack, swear and threaten their children with violence (the other end of the scale perhaps), I've seen them fidget and get stressed and look embarrassed when their child is just doing normal toddler stuff. I've seen toddlers screaming, shouting, swearing, running around tables when their parents are eating, throwing food and fighting.
and I've sat back and taken an objective view on us - DS watching others, eating his food but taking time to enjoy it by studying it carefully. sometimes he uses a fork (and might bang it on the table or twirl it round) sometimes his fingers, sometimes he uses a straw to drink (and chews on it until it's unusable) and sometimes it gets spilled. there's often food on the floor when he's finished (I pick it up at the end and leave it on his plate), he takes a while and he doesn't sit still or on his chair (highchair so he actually sits in a chair) 'properly' - he plays with his food and gets distracted easily but you know what? he's a kid, that's what they do!
but he is polite, he engages in conversation with us, he tries new foods occasionally, he smiles at strangers, he laughs. I tell him off if he gets too loud or fidgety but mostly I sit and eat and I observe.
the trick I think is to lower expectations to an age appropriate level. unless your child is charging about the restaurant or creating a riot then I can guarantee nobody is judging you (and if they are so what?) - the drill in this family for meals out is: walk or play first, decide where to eat beforehand so we're not searching while hungry, get in, sit down, order. find something for DS to play with while we're waiting, make sure he's not ignored. eat, don't attempt a long adult conversation and get out when DS shows signs of having had enough of behaving (different for every child but he starts to get a bit more loud and difficult to engage with) - this is almost always before the adults have had enough time there...I know from experience that if we leave it too long things are going to get nasty!
I think what I'm saying is that the things you're describing sound pretty normal for his age and I don't think there's any reason to be overly worried about it. he will get better at it in time. it's all practice and it will improve. I'm starting to care less what people think and by watching how the average parent and child behave I'm realising we've got things pretty good! we had an experience similar to yours yesterday and I considered it a roaring success!
I spent my whole childhood being told off constantly at the dinner table for every tiny thing and I never really enjoyed family meals. I want DS to enjoy them so although at home I try and enforce a few table manners, I keep it brief ('the knife doesn't go in your mouth, it's sharp' , 'yes I know you're finished but the rest of us are still eating so you need to sit at the table until we're all done) - when I'm out and about I try and prepare for it and just enjoy it, and have a good idea of normal toddler behaviour - they don't sit still for long! 