Возможно стоит попробовать getTimer() - встроеная функция, возвращает кол-во миллисекунд прошедших с момента запуска флэшки. Вдруг точнее будет.
Весьма интересные результаты получились. Иногда разница между измерениями через getTimer и Date лежит от -15 до 0, иногда от -8 до 6, а иногда от 0 до 15. Кому интересно:

Код AS3:
var dt_start:Number = (new Date()).time;
var dt_delta:Number;
var tm_start:uint = getTimer();
var tm_delta:uint;
var i_dtCurr:int = 0;
var i_dtMin:int = 0;
var i_dtMax:int = 0;
var i_cycles:int = 2048;
stage.addEventListener( MouseEvent.CLICK, _onMClick );
function _onMClick( e:MouseEvent ):void
{
for( var i:int=0; i<i_cycles; i++ )
{
dt_delta = (new Date()).time - dt_start;
tm_delta = getTimer() - tm_start;
i_dtCurr = tm_delta - dt_delta;
i_dtMin = i_dtCurr < i_dtMin ? i_dtCurr : i_dtMin;
i_dtMax = i_dtCurr > i_dtMax ? i_dtCurr : i_dtMax;
}
trace( "\n" );
trace( "deltaTimer: " + tm_delta );
trace( "deltaDate: " + dt_delta );
trace( "i_dtCurr: " + i_dtCurr );
trace( "i_dtMin: " + i_dtMin );
trace( "i_dtMax: " + i_dtMax );
}