author here;
The main golang thread lives in the same thread as Qt's main event loop.
If you now want to "cross" threads from a goroutines (which may lives in another thread), you can use Qt's signals and slots to safely "cross" threads.
Take a look at the "quick/bridge" examples to see how Go is interacting with QML, and therefore has to "cross" threads several time.
edit: can't comment any further currently, I will try to answer everything once I'm unblocked.