First things first, here's a link to Leviton's 7299 combination switch & GFCI instruction sheet. For a tamper proof it will be a T7299. The only reason I give Leviton is because I know the part number. Hubbell, GE or Cooper are just as good and make the same.
GFCI protection for both outlets.
Follow the instructions that come with the GFCI. There are leads for the switch and lugs for the GFCI and also the feedthru-protection of another receptacle.
No GFCI outlet behind the dishwasher (for easy resetting without dishwasher removal).
This is accomplished by feeding the dishwasher receptacle using the GFCI feedthru-protection lugs.
The switch only toggling the garbage disposal outlet and not the dishwasher outlet.
This is accomplished by using the leads on the combo switch & GFCI to feed the garbage disposal.
Am I going to need to run some more wire through the walls?
If there are no wires between the combo switch & GFCI then you will have to pull some romex between the two.
Should I investigate adding a GFCI breaker for that circuit?
The breaker will cost a lot more than the combo switch & GFCI. Also, if the GFCI trips then you have to go to the breaker to reset it. At least with the GFCI receptacle feeding your dishwasher receptacle, you will be closer.
What other solutions would achieve the same effect as listed above?
I think this is the way to go, so you don't have to pull your dishwasher out to reset the GFCI. The nice thing about this site is some of the people either can think out of the box or have faced this problem before.
Can't have a loose wire
"14/2" means a black, white and bare wire wrapped in a sheath. "14/3" is the same except it also has a red wire inside the sheath.
If the red wire is outside the sheath, loose or tacked on, then it cannot be used. At all. This is a totally improper wiring technique. Cap it with a wire-nut and tape, and push it into the back of the box. At the service panel end, just cut it - it is useless. Whoever installed it did very bad work, and all the other work in the house should be reviewed against Code.
I know what he was trying to do, but you can't do that - so no point getting into the gory details.
Pigtails are fine
It's fine if circuits are pig-tailed with wire nuts and short lengths of wire to the receptacle. That is a totally acceptable wiring method.
A workaround: put it all on a single circuit
The simplest thing is simply to wire everything onto a single circuit. It's not good, it would certainly not meet new-build or remodel standards, but it is better than he had it.
When possible, you should pull at least two more 12 AWG/20A circuits, preferably three, and spread the loads out among them. Then retire the 15A/14AWG circuit, or dedicate it to a single thing such as the refrigerator.
Two ways to GFCI
You can install a GFCI breaker inside the panel. That will protect everything on that circuit. You must use a 15A breaker because there is any 14 AWG wire in the circuit.
Or, you can install a GFCI receptacle there at the switch. You can decide which additional loads you would like to GFCI-protect by attaching them to the LOAD side of the GFCI. If you put a "hot" on the GFCI LOAD terminal, you must also put its companion "neutral" also. You may end up with 2 wire-nuts with 2 groups of neutrals: the unprotected and the protected. If a hot goes through the GFCI and a neutral does not (or vice versa), the GFCI will trip.
Best Answer
Code requires two 20 ampere small appliance branch circuits, which it sounds like you have. There's no requirement that I'm aware of, that the receptacles near the sink have to be separate circuits. Though it could potentially be a local ammendment, so you'd have to chek with your local building department.
NEC also requires all countertop receptacles to be GFCI protected, not just those near the sink.