Will multiple threads run sltTimeout() as a result?
It will not run automagically so, no. You will need to make sure it is done like that if desired, e.g. if it is doing some computation.
If so, it seems that could cause problems with unsynchronized access to an object.
Yes and no.
It is nothing special in this case, just general thread programming. You would need to use thread sync'ing primitives, like QMutex, QMutexLocker, QSemaphore, and so on.
Another trick you could do is to stop the timer invokation when the slot is processed, but that has the compromise you may not wish to take.
Do not forget that the event would be queued by default, so if you do not depend on the previous run of your sltTimeout in the next run, you could even ignore threading "if you have enough time" to get it done. If there is dependency between subsequent invocations, then yeah, you need to become smart in code.