Make sure to give him every last drop of the meds even if he's feeling better before you run out of medicine. Also, a fever is the body's natural way of killing a germs. Try and let the fever ride without giving him anything (like Motrin) to break the fever. Just keep him comfortable and hydrated. When my daughter used to get sick as a toddler, she would sleep for hours and hours and then one day just wake up fine. It's best to let the body do it's thing. The antibiotic is a good start, but honestly sometimes doctors will give you one but it's a virus, not a bacteria. Take the medicine just in case, but take however much time he needs to rest, rest, rest. Have him drink a ton of fluids, including foods with lots of fluid content, like watermelon and even popcicles and jello. Try and keep him so hydrated that he pees a lot to flush the germs out of his body.
As far as keeping him from getting sick repeatedly...well... no one wants our kids to be sick. But I'm with my grandmother in believing that kids needs to be exposed to germs at a young age so their bodies can learn to fight off infection. I'm not saying to have him lick the floor of the grocery store or anything, but all of the moms who go crazy sanitzing everything and constantly bathing their kids in antibacterial cleansers are doing more harm than good, in my opinion. Just do careful hand washing when he's out in public, try and keep him away from playdates with kids who are coughing and have green runny noses, and otherwise just let him be a kid and try not to worry too much about how soon he'll be sick again.
Oh- and the red throat... My guess is that since he has a sinus infection that the snot is dripping down the back of his throat. Again... take all the medicine the doctor gave, keep him hydrated, and don't take him back to the doctor just for that unless he complains about it hurting to swallow or if he's coughing an awful lot to the point where he is having a hard time sleeping.