Smooth Scrolling for TAdvStringGrid

Consider the following case: A Stringgrid with different row heights. The height of each row is determined dynamically at run-time and depends on the amount of data to be shown. The height of each row is adjusted so that all lines of text inside this row are visible. This is a must.
So the grid may have a few rows which contain only a few lines of text, followed by a row which contains 50 lines of text, followed by rows that again only contain a few lines of text.

When this grid is scrolled vertically it always jumps to the top of each grid row. Scrolling doesn't take the row height into account. For the row with 50 lines of text this may mean that the bottom lines of text may never be visible if they don't fit into the total height of the grid. Adding a vertical scrollbar to this specific row is not an option.

How can I achieve it that each "tick" of the scroll wheel, Arrowkey Up/Down or drag with the drag handle scrolls by the same physical distance and not by a full row?

TAdvStringGrid descends from TStringGrid and the base grid can only perform per row scroll.

If you want pixel level scrolling, such feature is in TMSFNCGrid that is highly similar to TAdvStringGrid but is built from the ground up (no VCL TStringGrid dependency) , has pixel or row level scrolling that can be selected and as a bonus, is cross platform (and web enabled)

Thanks for the information