you did it by pressing the scrollbar's buttons
do it by detecting user's clicks and command the list as you wish
I don't understand
What do you mean by "do it by detecting user's clicks and command the list as you wish"?
You possibly mean you don't want the operating system to handle the scroll, you want to handle the scroll yourself based on user input. If so, then you're going to have to write your own control. That ListBox is a windows listbox (or it is under Windows).
if you do not want this just see if you can tell when the user is scrolling using a property or a methode of the control
This control doesn't surface the Scrollbars events, so there is no easy way to do this.
And I'm back to asking why
If you're just learning, then the lesson here is you can't monitor whether this control is being scrolled or not. Or more accurately, I don't know how.
If you're trying to do this because you have a need, then you can write your own (either fully customdrawn) or override the existing ListBox and patch this behaviour in (though I don't see anything relevant in TCustomListbox), or use an entirely different control.
Until I know the reasons why, I'm unable to help further... In fact, I think I'm already at the end of my usefulness here.