You will have to use a XMLHttpRequest to read the XML file, which would will make the toolbox file read, and therefore the Blockly injection, an asynchronous event.
It's not difficult to do, but might require a few more lines, and move things around if any of your page javascript assumes Blockly is injected already by the time it is executed.
I used to do that in my blockly application, but eventually decided to revert it to simplify things a little bit and be able to open the html page with the Blockly application without having a server running on the background. If you are interested you can have a look at this commit which shows the old code (reading the toolbox as an XML file) being removed, essentialy being the reverse of what you'd like to do in your implementation:
https://github.com/carlosperate/ardublockly/commit/57624ab3db5e08a7dfff6f7d62fbc454b4bc3b2d