Via the API you can certainly play the same track in as many zones as you like (send the same browse item action to different zone IDs), however there will be a certain amount of highly unpredictable latency between each load and play request being actioned - think time between pressing play and a track being loaded and played - it will be similar to that between each zone initiating playback.
Attempting to get better initial sync has some complications: there is no load track, just load and play it - ie just like clicking play on it in the UI. Once a track is loaded however, it could be paused, seek back to zero and play again in each zone - this will be better sync as the response time for play/pause is usually much quicker than browse item invocation, but there is still no guarantee of instant action - it will be highly dependent on the speed of your core, network, output device buffer pre-load size etc.
Also, if taking this latter approach of load+play, pause, seek, play, then the chance are that at least some initial sound of the track will be heard. Either way - quite ugly really.
Likewise there is no direct mechanism to load and play a track from a specific cue point. You can load and play it (single action), then seek (another action).
The API appears designed specifically to provide almost simplest possible transport and browse control behind a UI and so it just is not suitable for audibly simultaneous playback start.
I do wish Roon had an API that could load and play a track from a position as a single action and wish that it had a zone copy function rather than just transfer. I find myself wanting to copy what’s plying to another non grouped different tech zone more often even than transferring between zones.