Pon especial atencion a los parentesis cuadrados y el punto que tiene el subquery, para que access lo reconozca como tal...
espero te sirva....
Código:
SELECT Mensaje.*
FROM Hilo INNER JOIN (Mensaje INNER JOIN [Select IdHilo, min(FechaHora) AS minimafecha from Mensaje Group by IdHilo]. AS Minimo ON (Minimo.IdHilo=Mensaje.IdHilo) AND (Mensaje.FechaHora=Minimo.minimafecha)) ON Hilo.IdHilo=Mensaje.IdHilo
WHERE (((Hilo.IdCategoria)=1));
un saludo.