Soweit ich weiß geht das nicht.
Die einzige Lösung, wenn es wirklich nicht anders geht, wäre, nicht eine Referenz auf die zweite Klasse sondern eine Referenz auf TObject (bzw. einen anderen Vorfahr der Klasse) zu speichern. Dann wäre zwar jedesmal bei Verwendung ein Cast notwendig, aber anders geht es eben wohl nicht.
So könnte dann die zweite Unit erst unter implementation eingebunden werden, sodass sich das Problem erübrigt.
Warum ich mir sehr sicher bin, dass es keine direkte Lösung gibt:
Forward-Deklarationen gehen nur innerhalb einer Klasse bzw. Unit (oder genauer: innerhalb einer type-Anweisung). Deshalb müsste der jeweils andere Klassentyp bereits unter interface zur Verfügung stehen. Und das geht auch nicht wegen Kreuzbezug.
(Mir ist klar, dass du das vermutlich auch weißt, ich wollte es nur nochmal gesagt haben.)
// EDIT:
Dies hier scheint eine Lösung zu sein, an die ich nicht gedacht habe, die aber das ganze unnötig unübersichtlich macht (finde ich):
entwickler-forum.de/...dex.php/t-28036.html