new string('A', tabStop);
とせずに
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".Substring(0,tabsize);

としてるのは何か意味があるの?
もしかして、GCヒープにオブジェクトが作成されるのを抑止できたりする?