Claro que se puede, pero de por si tu código que has publicado esta mal, los header() deben estar antes de cualquier salida hacia el navegador (echos, código html fuera del tag <?php, etc), en fin, para lo que quieres hacer solo ve guardando el código de la tabla en una variable, al finalizar guardas el contenido de la variable en un archivo
Código PHP:
Ver original<?php
include("conexion.php");
if(!$conn) {
echo $e;
}
$dia = $_POST['diaom'];
$query = "SELECT * from tabla";
$tabla = '<table>';
$table .= '<tr>';
for($j=0; $j<$campos; $j++){
$table .= '<td>'.$row[$j]."</td>";
}
$table .= '</tr>';
}
$table .= '</table>';
echo 'Archivo creado correctamente';
}else {
echo 'El archivo no se pudo crear/guardar';
}