Это не то, что подразумевается под асинхронностью.Javascript всегда будет выполнять этот код сверху вниз.
Под асинхронным пониманием подразумевается, что иногда существует функция, которая выполняет, например, HTTP-запрос.Когда данные вернутся, неизвестно, поэтому, насколько я понимаю, движок продолжит выполнение другого кода.
Вот почему люди используют обратные вызовы, когда этот запрос выполнен, браузер знает, чтобы перезвонить некоторой функции (если вы предоставили один из них, конечно), когда данные будут готовы.
За исключением подобных случаев, вам не следует беспокоиться о срабатывании localStorages.setItem до завершения цикла for.