Если я создаю CLLocationManager, назначаю его делегату и, наконец, говорю ему начать обновление, какой именно поток вызывает делегат? Какой-то системный поток?
Поскольку в документации ничего не сказано, можно смело предполагать, что делегат будет вызываться из цикла выполнения (основного потока или потока пользовательского интерфейса, в зависимости от того, какой термин вы предпочитаете).