У меня тут такая идея появилась.
А если поправить код так, чтобы использовать DeleteAll по завершении цикла вместо поштучного удаления внутри?
Не пробовали? Вроде побыстрее должно выйти.
Основные тормоза не из-за делета, а из-за кривого пермещения измерений.