Accurate time synchronisation between flight controller and companion computer

I’ve been reading about the clock/time synchronisation features of ArduPilot, which I understand rely on serial data being passed back and forth between the two devices. I think this will only be as accurate as the handling of serial data at both ends allows. Any inconsistent comms latency will add inaccuracy in clock sync.

Is there any lower-level method of ensuring millisecond-level accuracy between clocks? For example could the flight controller be configured to output a regularly clocked pulse on a GPIO pin, which could be captured and used by the companion computer for clock synchronisation without relying on serial transmission?