Its not a matter of what you have to keep them occupied, but where to teach them how to be patient. Right before a doctor or bank appointment isn't the place kids can learn to be patient. It starts at home and requires for you to be patient first. Kids learning to be patient requires them to realize the world doesn't revolve around them for everything they want.
At home, don't jump every time he wants something. Even if he asks for a drink, don't rush. Just walk slowly and patiently to the kitchen and get his drink slowly, no matter how much he whines and cries.
If he wants you to play with him, don't drop everything. Tell him "ok" but finish reading that page in your book, or put in that load of laundry, or finish washing the dishes for a minute or two. Follow through and play with him of course but don't jump just because he wants you to.
Set aside some special toys he isn't allowed to play with regularly (you may have to buy new ones). Each day give him a toy and have him sit on the couch or on the floor (or wherever) and have him stay there for a minute. Then put the toy up. Do this every day adding 30 seconds - 1 min each day. Change the toy every few days. Bring those toys with you when you have to go somewhere and wait. Soon you've built up his "waiting room patience" at home to 10-15 (maybe even more!) minutes and won't have anything to worry about keeping him occupied because you have his "waiting room" toy on hand.
Children's behavior is an extension of what they're taught at home.
GL!