Проблема в том, что аякс-запрос - асинхронная функция и цикл for просто не ждет ее выполнения. В итоге запрос выполняется с последним значением переменной.
Вот так можно попробовать:
for (var id = 1; id < 11; id++) {
(function (id) {
$.post('getname.php', {Id: id}, function() {
alert(id);
}, 'json');
})(id)
}
Плагинов для этого - море.
Проще всего взять сайт с подходящей функциональностью и покопаться в его исходниках. Например, последний сайт из списка сделан при помощи стороннего плагина. На странице плагина уже можно почитать документацию, посмотреть примеры и попробовать соорудить что-то свое.