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.
Yes, you are right. Current code wants the dishwasher GFCI protected. However, unlike the dishwasher, there is no specific article that explicitly states a disposal requires one.
A Double pole GFCI 20 Amp breaker can protect two individual appliances. The Wiring is known as a MWBC "multi-wire branch circuit" and uses 12-3 "Black, Red, White, and Ground".
However, current code also wants everything in a kitchen, including dishwashers to be ARC-fault protected. One solution is to use a Double-Pole Dual GFCI/ARC fault 20 Amp breaker.
But since you ran two separate branch circuits I don't think code allows you to combine the neutrals as one in the panel because the conductors are not in the same sheath/raceway when they leave the panel. In which case, you would just do as you mentioned using a 2-gang box with one GFCI and one regular outlet, which is probably far way less expensive!
Best Answer
Any electrician who looks at this would consider that subpanel 'maxed out' ... Not necessarily due to the technicalities of the code to squeeze another circuit or two in with complex tandems but because of the amount of wire packed into that small box and the extreme of things taken to extremes - meaning the multitude of tandem breakers. Generally tandems are used for squeezing in 'one more' or properly upgrading a bath or kitchen on a tight panel. While possible to expand this box is a bit fully loaded as it is.
I would suggest getting a larger subpanel and trying to keep as much as possible as single, standard breakers. You can keep the feed wire and originating circuit breaker (in other panel) the same as long as you're not planning on adding more load. But a new metal panel box is going to be a similar price to a number of $20-30 complex tandems and tandem arc fault breakers.
Here's a subpanel for $75