синхронизация означает, что ваш JavaScript будет заблокирован, пока вы не получите ответ от сервера
async означает, что вызов к серверу будет происходить в параллельном потоке, и ваш js будет продолжать выполняться.
Вы никогда не должны использовать синхронизацию - плохой пользовательский интерфейс для человека
Добавлено: и вам, скорее всего, не следует напрямую использовать XMLHttpRequest - между браузерами есть тонкие различия. Гораздо лучше использовать такие библиотеки, как JQuery, yui, mootools и т. Д.