The Sleep(0) allows pnlRoot_Resize to fire early.
Without the Wait For/Sleep, pnlRoot_Resize is called, your list is cleared, the 15 items are displayed, pnlRoot_Resize is called, your list is cleared and the 15 items are displayed.
With the Wait For/Sleep, pnlRoot_Resize is called, your list is cleared, the first item is displayed, Wait For/Sleep happens, allowing pnlRoot_Resize to fire "early". Now it gets interesting: Your list is cleared (removing the first item that was placed by the first call to FillScrollView) and a second FillScrollView is filling 15 items and the first FillScrollView is continuing the remaining 14 items. With the Wait For/Sleep, they bounce back and forth between each other, creating duplicate entries.
Ninja'd by
@Erel...