Le truc en fait c'est de faire 2 requetes (pas sur qu'il y a moyen de faire ça en une seule requete, si oui ça m'intéresserait aussi xP).
Première requete qui va lister tout les forums,
la seconde requete sera dans le while de la premiere et prendre en paramètre l'ID du forum actuel (qui va donc changer au fur et à mesure).
Donc en gros tu fais ta premiere requete et tu fais ton while
while($r = $req->fetch( etc etc ))
{
// Et c'est ici que tu va "fabriquer" ta seconde requête à partir de $r['ID'] de la première.
$sql = 'SELECT * FROM sous_forums WHERE ForumID = '.$r['ID'];
...
...
while($r2 = $req2->fetch())
{
echo $r2['Title'];
echo $r2['Date'];
etc
etc
}