redirection and removal are all I can manage at this age (dd is 14m). Creative redirection (like the songs) and deciding about what behaviors are really important to you are what helps me. I explain, but with no expectation that she will understand or respond (that's why timeout is inappropriate...your child cannot understand timeout.) Those things, and managing expectations. This is the #1 issue of kids I see melting down in public. (a looong checkout line after shopping for an hour, with no entertainment is a formula for trouble. Too long a day, too many stops, or not allowing for naptime or snacks are other issues. Expecting a 15 month old to sit in a highchair at a restaurant is not, usually, reasonable. (seating, ordering, drinks, appetizers, dinner, dessert). No way! Think of alternatives. A buffet restaurant is faster...maybe you could get through that. Order take out. Go with more than one adult. One of you place the order, while the other one walks around and explores outside or in a more public part of the restaurant. Only sit in the highchair for eating. When the food comes you might take turns eating. No appetizers or dessert. Ask the waiter to bring his food first, or pack your own. If he runs out of patience, alternate "sightseeing" while each of you finishes eating. Bring special not usually seen toys. Bring your own more comfortable booster seat. You probabkly donlt need to do all of these but a few will probably get you through.
What I do. DD sits in her high chair for meals only. I only give her a small amount of food at a time so she's not tempted to throw too much or make a huge mess. I sit with her and eat, too. I only feed her small amounts and only when she's hungry. When I can see she's done eating and is not content, or is starting to throw things, we get down. Sometimes, we'll picnic or have finger food in the living room, but normally, meals are at the table, snacks more freeform.
Thinking of it as "defiance" I think only makes you angry, and doesn't fix the problem. And since it's a totally normal behavior, I think it's a bad description. You child is trying to communicate something. Doesn't mean you have to agree!