тебе и не надо узнавать индекс последней выбранной позиции.
на мультиселектах так:
при клике на элементе, добавляем в массив выбранный индекс.
если индекс добавляется повторно, значит пометка убирается, и из массива надо грохнуть повторно добавленный индекс. после манипуляций с массивом перебираем все элементы и расставляем выделения на элементах согласно индексам находящимся в массиве
отслеживаем чтобы не было зажато ctrl, иначе будет глючить чутка ( тут подразумеваю что при зажатом ctrl будет выбрано несколько элементов, а при простом клике выделится только 1 элемент, так и различать ).
для самого юзверя динамическое выделение будет не заметно
UPD: вообще достаточно много готовых вариантов существует, если не в учебных целях интересуешься, возьми готовый