Tienes que armar la tabla segun los datos que vas obteniendo... algo como esto:
Código PHP:
$sql = "SELECT ACTIVIDAD FROM hoja1 ORDER BY HORA";
$resultados = mysql_query($sql);
$html = '
<table>
<tr>
<td>HORA</td>
<td><p>SALA</p></td>
<td>LUNES</td>
<td>MARTES</td>
<td>MIERCOLES</td>
<td>JUEVES</td>
<td>VIERNES</td>
<td>SABADO</td>
</tr>';
while($datos=mysql_fetch_array($resultados)){
$html .= '
<tr>
<td>'.$datos['HORA'].'</td>
<td>'.$datos['SALA'].'</td>
<td>'.$datos['DIA'] == "Lunes"?1:0.'</td>
<td>'.$datos['DIA'] == "Martes"?1:0.'</td>
<td>'.$datos['DIA'] == "Miercoles"?1:0.'</td>
<td>'.$datos['DIA'] == "Jueves"?1:0.'</td>
<td>'.$datos['DIA'] == "Viernes"?1:0.'</td>
<td>'.$datos['DIA'] == "Sabado"?1:0.'</td>
</tr>';
}
$html .= '
</table>';
print $html;
Esto:
Código PHP:
$datos['DIA'] == "Sabado"?1:0
Pregunta si $datos['DIA'] es igual a "Sabado" y de ser asi se va a mostrar un 1, en caso contrario mostrara un 0.
Si quieres reemplazar eso con texto puedes ponerlo entre comillas.
Suerte!