MyThread - это переменная. В ней хранится вся инфа о потоке + переменные, которые ты объявил. MyThread.Execute - это процедура, выполняемая твоими потоками. Когда ты пишешь 6 раз в одну переменную, то теряешь хендл первых 5ти потоков, всю инфу и т.д. Так что лучше юзать массив потоков
Код:
var MyThreadArray:array[1..6]of TMyThread;
Судя по всему, до момета, когда первый созанный поток доходит до добавления строки в MEMO, уже создаются все 6. Поэтому в переменной уже лежит 'Aaa6'. Вот он ее и добавляет. Тут опять же, решение одно - массив.