Glad I've asked And I've learned a new phrase!
I was using Spy++ to intercept the messages the list control is receiving and noticed some timer messages I was not sending and started intercepting them. The scrolling issue seems to be caused by the list control receiving a
WM_TIMER message with the ID 43.
I consider this a really ugly fix and the messages probably have a reason to be there. But so far it has been more annoying with them than without.