After a bit of back and force with the author and another look at the paper it's much clearer how the simulator they use works.
First, as josh thought, the carrier frequency is actually just the voltage being turned on and off at 10kHz during each 1ms pulse. This should have been obvious from a look at the paper but for some reason I missed it.
Second, the stimulator in use has a current sensor which measures the amount of current and checks it against the target current, then the voltage is adjusted to compensate for any change in impedance. The nature of the applied waveform prevents polarization of the electrodes and skin beneath the electrodes so changes in impedance is usually due to some other factor.
This means that while the pulse pal can output an appropriate waveform a current sensor would have to be added and tied to logic that adjusts the amplitude in order to keep the current constant. Seems like a kind of roll-your-own approach at this point. The arduino due could probably handle reading a current sensor and some extra code could change the amplitude on the fly but right now I don't know enough about current sensing to do that myself. I'll probably post this problem on an arduino or electrical engineering forum flush out the details, unless a member here could point me in the right direction.