I have a couple of suggestions for you. I had a very active youngster who didn't care to sit....not even at character meals....for any length of time. Unfortunately, it will cut your dinners short....but at least you may not be embarrassed to death in a restaurant.
We never ordered predinner drinks or appetizers. Ever. I know that's harsh, but we knew that if our son ate while we had a drink or an appetizer, he was ready to roll while we wanted to eat our main course. So we ordered our main course right off the bat and a drink or wine with it. At least this way we were able to enjoy dinner.
If our son was behaving, we ordered dessert.....served with coffee....not after coffee. Again, it shortened our meal.
If things weren't working out, we always took a stroll. DH and I would take turns....outside the restaurant (if feasible), visit the restrooms if necessary and take a look at flowers, birds, the ocean....whatever was available. It didn't make for a great meal, but it was helpful.
We also used to pack new packages of Legos....the ones found in soft packages with a minimum of pieces. It was a treat to get a new "toy" at dinner occasionally. That kept him occupied for a bit. Also, dry erase boards were a great help. We would ask him to draw a man. Tic Tac Toe. His favorite flower. Anything to keep him occupied.
If our son started to scream, we left the restaurant immediately. No negotiation. One of us had the food packed and check paid while the other removed our son from the restaurant. No dessert. No treats. No compromise.
I hope this helps. It's a tough stage to go through with kids. I wished mine would have always behaved....but he didn't. Now, though, he can sit through a 4 course meal with no problem....