per non farlo andare in timeout bisogna avere un server dedicato.. sul server dedicato i gestori dano il crontab, il crontab (cronjob) è un sistema in cui aumenta il tempo del processo di uno script, nel tuo caso di lettura xml e scrittura dei dati dal xml al mysql

come server ti consiglio o
aruba (velocissimi, stabili .. non so se il pannello di controllo è gestibile)
oppure
noamweb (un po lenti però hanno un ottimo pannello di controllo gestibile)