Congratulations, he sounds perfectly normal. At one, it all becomes a power struggle, and it is a normal part of his development. he wouldn't be a healthy kid, if he didn't challenge you. It does not mean he will be a difficult child or a picky eater.
That being said, however, you are right to want to handle this well and avoid creating bad habits that will, at least, make the next couple years very hard. You also want him to have a diverse diet. All you can really do is offer a diverse but small assortment of food,and let him graze. Put part of your meal on his plate - meat, veggie, etc. and one thing you know he will eat. And leave him alone. Don't cajole, just let him be incontrol as much as he can be. Also, eat with him and emphasize how much you like it all. Feed him off your plate if he wants.
If he drops/throws something or acts out in other ways, just take his plate away or get him out of his chair. No yelling, just simply, "If you throw, dinner goes away."The quieter and smaller your reaction the better. Don't even make eye contact if you think that he values that attention too much. Only talk/play for good behavior, and then lavish the attention.
Make sure he is hungry when he sits for a mea. That doesn't mean NO snacks - he probably should have 5-6 smallinsh meals per day. But don't feed him OR give him milk for an hour or more before dinner. And don't offer a dringk until he is mostly done with his meal. And frankly, I wouldn't give him juice. Aside from it just being bad for him, it sets up a reward strucuter. And trust me, he will learn or has learned to hold out for the juice which may very well fill him up before bed.
What hr is eating sounds about right, that is "normal." Keep offering small portions of veggies and proteins, but set realistic expectations. Some nights, one bite is success. Encourage him to be a kid that tries everything, but not necessarily eats everyting.
Some good foods are pureed/mashed/diced avacado, beans, sweet potatoes, and protein enriched pasta. If pasta is a hit, try putting tomato sauce on everything or offer as a dip. Also mix fruit into anything. My daughters loved potatos and apples as well as avacado and bananas.
Good luck. Be calm and patient and focus on not making meals stressful for anyone - let mealtime be enjoyable for him (but not a free for all) and he will learn to love eating, Let him have as much choice in foods as possible, but don't tolerate difficult behavior at the table like throwing.Also, don't try to keep him in the high chair too long. he is too young to sit through an adult meal, at least tha tis true for some kids. Make him behave a reasonable amount of time, but don't encourage him to hate being stuck in the high chair. I promise he will improve, although you will probably have many more "phases" ahead of you too. Enjoy him, it goes fast.
Oh and one more thing - Don't teach him "No." Use positive language. If you are always sayin "Don't this" or "Don't that" all they really hear is the this and that. Tell him in a quiet voice, almost a whisper, "Say it wiht nice words" or 'Inside voice" or whatever you choose.Also, encourage signing. It is easy to learn 2-3 easy signs form videos online and it helps avoid frustration. Kids learn signs as early as 6 months, but my kids realized they were useful and really used them around 15 months or so. The best are More, Please, Drink, Eat, Play. Makes a world of difference. Screaming for the sheer joy of the sound (and your reaction) is also very common) really jus tignore that or distract him with conversation.