Pomijam fakt, że w tym momencie siekniesz tylko 500 zapytań do bazy przy jednym wykonaniu skryptu. No i druga rzecz wykonasz o dwa razy za dużo przejść pętli:
$i=1000;
while($i<2000){
$i +=2;
}
przy czymś takim pokusiłbym się o coś na zasadzie:
$aId = range(1000
,2000
,2
); //zapełnienie tablicy id parzystymi $sql = 'select id from users where id in('.implode(',',$aId).')'; //zapytanie wyciągające wszystkie id
while($row = mysql_fetch_assoc($result)) { //od 0 do 500 przejść zależnie od ilości w bazie unset($aId[(floor($row['id']-1000
)/2
)]); //tak wiem zarąbiste usuwanie klucza 
}
}
if(!empty($aId)){ //czy przypdakiem nie zostały wszystkie usunięte i nie ma nic do wyświetlenia foreach($aId as $value){ //od jednego do 500 przejść
}
}
To takie rozwiązanie na szybko, znacznie wydajniejsze