Я пропущу очевидный ответ "Список не является потокобезопасным" - это вы уже знаете.
Элементы списка хранятся во внутреннем массиве. Существует как минимум два этапа (с логической точки зрения) при добавлении элемента в список. Сначала List получает индекс, указывающий, куда поместить новый элемент. Он помещает новый элемент в массив, используя этот индекс. Затем он увеличивает индекс, и это второй этап. Если второй (или третий, четвертый, ...) поток добавляет новый элемент в то же время, возможно, что два (3, 4, ...) новых элемента будут помещены в одно и то же место массива перед индексом увеличивается на первый поток. Элементы перезаписываются и теряются.
Внутренние операции добавления нового элемента и увеличения индекса всегда должны выполняться за один раз, чтобы список был потокобезопасным. Это то, что называется критическим разделом. Этого можно добиться с помощью замков.
Надеюсь, это немного объясняет.