Лучший способ получить ответ - взглянуть на исходный код. Сначала нет никакой синхронизации в createTempFile, но для генерации имени временного файла он использует SecureRandom, который является ThreadSafe.
Тогда, если вам не повезет, ваш файл всегда будет иметь другое имя.
Кроме того, реализация createTempFile зацикливается, генерируя новое имя файла, пока файл не будет создан. Разумеется, создание файла делегировано операции с файловой системой, которая, как мы можем предположить, является потокобезопасной.