G-Code is processed as a queue. The FIFO behavior would disallow to execute any commands in parallel.
However I am aware of - yet I didn't have opportunity to try - the emergency commands M112 or M108 offered by Marlin. Marlin documentation says that EMERGENCY_PARSER and HOST_KEEPALIVE_FEATURE need to be enabled to handle these. So apparently there is a mechanism which may work in parallel (like the higher priority queue?).
These commands may be designed to break execution of some specific actions, e.g. M108 was described to break wait-for-temperature loop. You may want to give it a try.
M0 also requires EMERGENCY_PARSER setting. And it may be bit different than you expect: it is described as pause after the last movement. By contrast, emergency codes (M112 full stop) are designed to jump the internal command queue even when printing and execute immediately, when emergency parser is enabled (command queue would be lost, printer may shut down or user may be forced to reboot the printer).