Damit das RichEdit verwaltet und angezeigt werden kann, greift die
VCL (ohne Beachtung deiner CriticalSection) auch noch darauf zu
und nicht nur deine beiden Threads (mit dieser Funktion/CriticalSection).
Mit Synchronize (TThread) wird die an Synchronize übergebene Prozedur sozusagen im Kontext des Hauptthreads ausgeführt ... heißt es kann nur noch Einwas (über den Hauptthread) zur gleichen Zeit zugreifen.