Código PHP:
do {
echo "<tr><td>".$row["HORA"]."</td><td>".$row["SALA"]."</td><td>".$row['$dia']."</td><td>".$row["ACTIVIDAD"]."</td></tr> \n";
} while ($row = mysql_fetch_array($result2));
Ahora que lo miro mas detenidamente, $result2 solo te puede mostrar ACTIVIDAD i DIA, porque asi lo has escrito en el SQL.
Código PHP:
<?php
include('localhost.php');
$dia = 'Lunes' ;
mysql_select_db($database_localhost, $localhost);
$result=mysql_query("SELECT SALA, HORA, DIA, ACTIVIDAD
FROM hoja1 ORDER BY HORA ASC",$localhost) or die(mysql_error());
$result2=mysql_query("SELECT ACTIVIDAD, DIA
FROM hoja1 WHERE DIA = ".$dia."" ,$localhost) or die(mysql_error());
?>
<?php
echo "<table border = '1'> \n";
echo "<tr><TD> Hora</TD>
<TD> Sala</TD>
<TD> Lunes </TD>
<TD> Martes </TD></tr> \n";
do {
echo "<tr><td>".$row["DIA"]."</td><td>".$row["ACTIVIDAD"]."</td></tr> \n";
} while ($row = mysql_fetch_array($result2));
echo "</table> \n";
?>
Prueba esto y me comentas