No soy un experto, pero creo
$idListString = implode(",",$idList);
mysql_query("DELETE FROM this_table WHERE id IN ($idListString)");
es más rápido. La razón es que solo hace una consulta. Se envían menos datos al servidor y todo se procesa de una sola vez, con un solo comando.
En general, con el otro método, si tiene, digamos, 300 valores, eso significa que está realizando 300 llamadas a funciones adicionales, 300 comunicaciones con el servidor, etc. aunque en la práctica eso puede variar.
editar:Además, siempre debe usar el escape de MySQL adecuado, incluso si puede estar seguro de que los datos no son maliciosos. Ver http://php.net/manual/en/ función.mysql-real-escape-cadena.php y considere usar mysqli o PDO.