データグリッドの初期化が遅いということで、ちょっと実験してました。具体的にどれほど遅いかを検証するAS2のソースは下記

  1. ソース1 時間取得用関数
	getCurrentDateString = function():String{
		var dt:Date = new Date();
		var wkString:String = "" + dt.getFullYear() + "/";
		wkString += dt.getMonth() + "/"
		wkString += dt.getDate() + " "
		wkString += dt.getHours() + ":"
		wkString += dt.getMinutes() + ":"
		wkString += dt.getSeconds() + "."
		wkString += dt.getMilliseconds() + "";
		return wkString;
	}

	traceMessage= function(message:String):Void{
	
		trace(getCurrentDateString()+" "+ message);
	}
	
  1. ソース2 データグリッド設定用ソース
import mx.controls.gridclasses.DataGridColumn;
//Col1設定
var dgc:DataGridColumn;
traceMessage("Start col1 Set");
dgc = new DataGridColumn("col1");
dgc.editable = false;
dgc.headerText = "番号";
dgc.width = 90;
grd1.addColumn(dgc);
grd1.getColumnAt(0).setStyle("textAlign", "right");
//Col2設定
traceMessage("end col1 Set");
traceMessage("Start col2 Set");
dgc = new DataGridColumn("col2");
dgc.editable = true;
dgc.headerText = "名称1";
dgc.width = 80;
grd1.addColumn(dgc);
traceMessage("end col2 Set");
//Col3設定
traceMessage("Start col3 Set");
dgc = new DataGridColumn("col2");
dgc.cellRenderer = "TestCellRenderer";
dgc.editable = false;
dgc.headerText = "名称2";
dgc.width = 80;
grd1.addColumn(dgc);
traceMessage("end col3 Set");
dgc = nudefined;
traceMessage("Start dataProvider Set");
//グリッドの値セット
for (i=0; i<10; i++) {
	var iObject = new Object();
	iObject.col1 = i+1;
	iObject.col2 = "TestData";
	grd1.dataProvider.addItem(iObject);
	iObject = undefined;
}
traceMessage("End dataProvider Set");
grd1.editable = true;

これで、流すと、col1の設定に時間がかかっていることが分かります。
col1とcol2でどこが違うかといえば、

setStyle("textAlign", "right");

になります。右寄せです。
一方で、col3は、CellRendererを使用しています。CellRendererを使用しても処理時間がかかっていません。ここに"TestCellRenderer"のソースは載せませんが、行選択時はテキスト入力、行選択ではないときには、ダイナミックテキストを切り替えて表示するようなCellに設定してあります。
これを使うと、DataGridの設定が早くなるということが分かりました。

ちなみに、//Col3設定で、

dgc = new DataGridColumn("col2");

と書いてあるのはわざとです。