Maybe this helps https://galaxyproject.org/admin/config/galaxy_slots/.
For a more detailed answer I think a developer need to help you. In the file config/job_conf.xml you can specify the cores. This “value” can be used in the XML wrapper by using the GALAXY_SLOTS variable.
But what I want to add and maybe this will partly answer your other questions as well. Keep in mind that in the basics galaxy is a “wrapper”, “shell”, “UI” around the command line. So if you execute a tool it just executing a command. (galaxy can do much more but for this is enough for your question).
So galaxy itself is not really handling the multithreading, trough galaxy you tell BWA for example how many threats it need to use and BWA handles the multithreading.