Wirelessly (but fast) transfer STEP and DIR output from Arduino to stepper driver
(Moved to &quot;answer&quot; for space; it's definitely not an answer. Sorry all!)
Minor points:

It's a motor controller shield; the GRBL is on the Arduino.
You'll need a motor controller at each motor; not clear if that's understood.
I'd also consider optical comms, although it has a different set of problems.

Ultimately I might approach this in a different way: instead of a single GCode box attempting to synchronize and control itself and an (essentially) independent system, I'd consider having a single GCode box (GBOX) controlling two independent systems (M1, M2).
GBOX would be a laptop/RPi/whatever that processes the &quot;real&quot; GCode. Based on the GCode commands, which in the end just tell motors what to do, I'd send each GCode command to its associated M1/M2 system.
How well this works depends a lot on the GCode, however; diagonals, arcs, etc. require motor cooperation, so a command like G02 X2Y0 R2 might cause problems, even though we can pull out the X and Y data. How the GCode is generated matters, but note that GBOX could also interpolate &quot;tricky&quot; commands to break them into something a dual-target system might be able to understand.
The &quot;meaning&quot; of the moves also matters: there's &quot;getting from one place to another&quot; and &quot;getting from one place to another while drawing a line&quot;: the former may (or may not) have requirements around what that actually means, while the latter requires coordinated motion, and even if you're splitting the commands up correctly, even a fraction of a second difference in receive/action time will matter. Of course, you could also transmit both motors' commands to both motors and rely on timing or cross-Mn synch for starting their respective commands.
In the end it may be the only real way to make this work would be to have the &quot;independent&quot; systems be able to synchronize with each other, so that they know they're (a) ready to start, and (b) starting at the same time. GBOX could also potentially handle that synchronization as a &quot;Go!!!&quot; command is about as deterministic as it gets, especially if M1/M2 can receive a broadcast signal at the same time.
https://www.zikodrive.com/motor-control-case-studies-and-applications-2/a-remote-controlled-and-synchronised-stepper-motor-controller/ (very) briefly discusses the issues around synchronizing remote motors where their relative positions matter.