First, remove the GFCI and the box that it is in. Open the hole, and install a 2-gang box in the place of the one removed. Re-install the GFCI, but do not connect the wiring to the outlet under the sink. Instead, splice the neutrals from the feed to the GFCI and the under-sink outlet together, splice a short jumper to the black feed to the GFCI, and connect that jumper to a new switch. Add the black wire to the under-sink outlet to the switch, install it in the new two gang box, alongside the GFCI, and put a new cover plate on.
This will remove the GFCI protection from the disposal outlet, which is acceptable in most parts of the country. If you would rather keep that protection, install the neutrals just as they were, put a jumper between the GFCI (where the undersink black wire used to be) and the new switch, then put the undersink black to the switch.
As it is, the undersink is powered all the time; as long as the GFCI is not tripped. You are using the test button on the GFCI to turn it (and the under-sink outlet) on and off; adding a switch will eliminate that.
The article at https://dengarden.com/home-improvement/adding-elec... will give some hints on how to remove and replace the existing box - you won't need to run new wire but do need a different box than what is there.