Ставите задачу в крон (либо агента), примерный код (взят из того же файла, что отвечает за импорт)
$csvImport = new CSVUserImport($csvFilePath, $arDelimeters[$delimeter]);
$csvImport->SetUserGroups($userGroups);
$csvImport->IgnoreDuplicate($ignoreDuplicate == "Y");
$csvImport->SetCallback("_OnUserAdd");
$csvImport->SetImageFilePath($pathToImages);
$csvImport->AttachUsersToIBlock($attachIBlockID);
if (!$csvImport->IsErrorOccured()) {
$csvFile =& $csvImport->GetCsvObject();
while ($csvImport->ImportUser()) {
/* ... тут можно делать список ошибок для дальнейшего вывода ... */
}
}