В том же Aimp это сделано совсем не так. Если у вас много данных используйте виртуализацию контролов. Aimp явно не ждет отображения, сделано через виртуальный контрол, контрол не хранит данные, которые не отображаются, а каждый раз запрашивает их при необходимости вывода у пользовательского кода, тут уже можете делать как угодно. При этом WPF контролы поддерживают виртуализацию, хотя без шаманства скорее всего не полетит.
Сам ковырял тут
www.codeproject.com/Articles/34405/WPF-Data-Virtua... всё получилось без проблем.
А в вашем случае надо будет отдавать данные с информацией о подготовке данных, а в последствии их обновлять. WPF в этом поможет.