Não sou especialista, mas acredito
$idListString = implode(",",$idList);
mysql_query("DELETE FROM this_table WHERE id IN ($idListString)");
é mais rápido. A razão é que ele faz apenas uma consulta. Menos dados são enviados para o servidor e todos são processados de uma só vez, em um comando.
Em geral, com o outro método, se você tiver, digamos, 300 valores, isso significa que você está fazendo 300 chamadas de função adicionais, 300 comunicações com o servidor, etc. embora na prática isso possa variar.
edit:Além disso, você deve sempre usar o escape adequado do MySQL, mesmo que possa ter certeza de que os dados não são maliciosos. Veja http://php.net/manual/en/ function.mysql-real-escape-string.php e considere usar mysqli ou PDO.