Вы регистрируете таймауты в правильном порядке, проблема в том, что они рассчитаны в порядке их значения, поэтому значение 10 будет напечатано через 100 мс, значение 100 через 1000 мс и т. Д.
Таким образом, вам нужно изменить расчет времени, чтобы вычесть максимальное значение (в данном случае 100)
(function () {
for ( var i = 100; i >= 0; i -= 5) {
(function() {
var pos = i;
setTimeout(function() {
console.log(" pos = " + pos);
}, (100 - pos + 1)*10); // note the subtraction here
})();
}
})();