Ditto Fuzzy on limiting him having his way all the time if he's being a pain.
If kiddo is hungry, tired, or hyperactive, the best thing you can do is try to solve that problem first.
Hungry? Okay, here's an apple.
Tired? Into bed or the carseat you go.
Hyper? Great. I'm going to stand right here with this stopwatch (or your phone) and you run to the end of the street and back as fast as you can. Let's see if you can do it in 30 seconds! GO! Oh man, that was fast! Do it again FASTER! (Do it 3-5 times and give him a big hug and praise when he's all worn out and ready to sit down or load up into the car).
Be sure to enlist Grandma and Grandpa's help. "Get to the car so Grandad can give you a big hug! Buckle your seatbelt and let Grandma check it!"
Finally, once you've addressed the main issues as much as you are able at the time (sometimes there's nothing you can do...no food, no place to sleep), just live with the upset. "Son, I know you're hungry. We'll get home and get you a snack, okay? Right now we're 20 minutes away from home. Just be patient, okay?" And let it be. Turn on the music, sing along, and ignore the frustrated wails.
Overall, yes, it can be a challenge...but it will pass.