Você pode inserir mais de uma linha por vez no MySQL:
INSERT INTO table1 (column1, column2, ...) VALUES (value_col1, value_col2), (value2_col1, value2_col2), ...;
Em PHP, você pode construir sua consulta percorrendo as linhas e adicionando-as à string SQL:
$sql = "INSERT INTO table1 (col1, col2) VALUES ";
foreach($rows as $i=>$row) {
if ($i>0) {
$sql .= sprintf(",(%s,%s)", $row["col1_value"], $row["col2_value"]);
} else {
$sql .= sprintf("(%s,%s)", $row["col1_value"], $row["col2_value"]);
}
}
mysql_query($sql);
Você precisa ter certeza de escapar adequadamente de seus valores, dependendo do que está realmente inserindo.