When he starts to play with his food, I'll say "okay you're not hungry" but then he says "no, I'm eating" and takes another bite. Problem is he starts playing as soon as he gets the food and I can't take it away and starve him.
Whilst I'm all for kids being able to explore I also believe in having acceptable table manners - with reasonable expectations which are age appropriate of course. If his level of playing with food is something you cannot accept, then really just don't accept it. I would cuddle up with him on the sofa 10 mins or so before food is served (or say 2 mins before a snack), tell him how much you enjoy serving him healthy foods to keep his body strong and full of energy, the energy he needs to play well, and tell him what your expectations are, that he is to have his meal politely, to either eat the food or leave it on the plate. If he's able to communicate his agreement then great. End with a big cuddle and tell him, dinner is almost ready we'll be eating soon.
Then when he gets up to the table and you serve his meal repeat your expectations, something like "Let's enjoy our meal together. I want you to eat politely, the same as Mummy and Daddy. You can eat or leave the food on the plate please."
When he starts to play with it tell him "Please eat the food or leave it on the plate. If you are not eating you can leave the table". I'd give him a chance like that. Then the next time he plays with it you tell him "This is not eating your food this is playing with your food, I'll take it that you are not hungry. I'll help you down" and take him away from the table. Meal time is over. And I really would take him away from the table.
I would generally give another chance, if my DS was doing something like this and I removed him from the table he might suddenly realise I am serious and ask to come back to the table. I'd repeat the expectation and tell him quite seriously this is his last chance and he may only join us if he is going to eat and ask him "Are you going to eat?" if he can say (or indicate) yes then I'd let him back up to the table. But that really would be the last chance and I'd tell him so.
I am assuming you have a pretty usual feeding routine of 3 meals and a couple of snacks per day at predictable times so there are enough opportunities for your DS to eat and not starve. Removing him from the table for a few meals is not starving him, you have not "withheld" food you have offered a meal. It's only going to be a few hours before his next meal or snack time comes and you go through the same routine. It's only going to take a few days of you being quite serious about your expectations for him to get the message and change his habits.
You have to keep telling yourself you are not starving him. Don't play the game where he quickly takes a bite so he can stay at the table. I would remove him fully from the table and from there it is only 1 chance if he asks to return. You do need to be determined to see it through. If he gets very upset I would cuddle him and talk to him but remain firm that flicking breadcrumbs around or smearing peanut butter across your face is not acceptable at the dinner table. By the time you remove him from the table the second time he has had 3 chances to eat his meal, this is not starving your child.
You may go a bit hungry yourself during the process if you need to leave the table to help him with his emotions but I'd be ok with that personally. It's likely only a few days.
A couple of other things. Don't expect him to eat too much, they do still have little tummies at this age and often parents expect LOs to have bigger appetites than they can manage. Do model good table manners for him, have meal times together so he can see how Mummy does it and so he can feel the pleasure of sharing family meal time at the table. I never joined my DS in snack times other than having a cup of tea but I felt it very important to have the 3 meals per day with him to demonstrate good habits.