I think you're doing some things just great - variety of foods, pushing the high chair up to the table if he doesn't like the tray (which actually includes him more when you're all eating), and nursing if you both still enjoy it.
I agree that he cannot steal food from other plates, and he can't run around when he's eating. It's not just about crumbs - it's about safety and a bit of decorum. I think it's unrealistic to expect most kids this age to effectively use utensils, and that's sometimes when the inefficient eating comes into plate as well as the frustration of throwing food. So do continue to feed him at least some of the food items while allowing him to use his hands for finger foods. You can cut up a wide variety of foods into bite sized pieces and let him enjoy them, while you feed him things with a spoon. Do you use a sectioned plate to keep things from sliding all over? Some people use an ice cube tray while others think that gives the kids license to toss many sections of food! However, it's very easy to put a tiny spoon in a "cube" of squash, yogurt, hummus or mashed sweet potatoes.
Keep a wet cloth nearby and wipe his hands and his face when he's done. That means when he seems to be done eating, not when his plate is cleared. Just say, "All done? Okay, you may be excused from the table."
Grazing is fine for little ones - they need probably 6 servings per day, maybe 5 with nursing. So expect that. It's not just patience - their tummies aren't that big. If you have things cut up or set aside in small serving sizes, it's easy to serve them up when needed without stopping what you're doing to start the wash/peel/chop/serve cycle. I used to make up nutrient-laden French toast and freeze slices between layers of wax paper, make my own healthy chicken nuggets, and oven-roasted veggies - all great finger foods. Sometimes kids focus better if they can dip foods - pita bits in hummus, al dente pasta (textured for better gripping) in marinara, lightly steamed carrots or tiny broccoli florets in ranch dressing.
Mostly, keep things at the table totally fun (even with rules/manners) - enjoyable conversation or even some possible table toys so that it's a desirable place to be.
Good luck!