Лучше ограничится только одним объектом MovieClipLoader и соответственно одним набором обработчиков и одним слушателем. Объявить их вне цикла.
А вот в цикле как раз - только attachMovie и loadClip.
Так можно поступить, поскольку внутри обработчиков есть аргумент target:MovieClip. От него и нужно будет отталкиваться, например, при индикации загрузки.
Вот так:

Код AS1/AS2:
function loadThumbs(){
var mclListener:Object = new Object();
mclListener.onLoadStart = function (target:MovieClip){
};
mclListener.onLoadProgress = function (target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
percent = Math.round(bytesLoaded / bytesTotal * 100);
target._parent.preloader_txt.text = percent; //target._parent - это соответственные box1..., то есть родители target_mc по этой записи: preview_mc.target_mc
};
mclListener.onLoadComplete = function (target:MovieClip){
};
mclListener.onLoadInit = function (target:MovieClip){
};
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(mclListener);
for (var i:Number = 0; i < total; i++) {
var preview_mc:MovieClip = thumbnails_mc.attachMovie('box', 'box' + i, i);
preview_mc.ID = i;
loader.loadClip(thumbnails[i], preview_mc.target_mc);
}
}