What I want is to be able to jog all the axis freely while running a G-code program
Can't see you being able to do that - why would you want to do this?
something similar to what happens when you use THC up/down function assign to keys.Mach interprets this beautifully and recalculates all the G-code relative to the new position from what I saw
I think you may be misunderstanding something here (or I'm misunderstanding you). Mach doesn't recalculate anything as such. It just moves the Z axis as prescribed by the THC up/down signals (and of course keeps track of Z position in the DRO). During this time Mach can not simultaneously perform Z axis gcode i.e. commanded movements. In fact I just tested this out before posting and if you command any Z movement, simultaneous THC up/down is ignored. (which is kind of what I'd expect - if you don't want anarchy)
Ian