Did some more testing:
To speed things up I already replaced listboxes by stringlists before trying things in Lazarus, so no screen access was needed for the algorithm itself.
In a total duration of 105 seconds, I write a result string to a listbox twice. That is all the screen access that I do during the run.
This is with calling Application.ProcessMessages 19 times.
And I did run without debugging.
It works, but like I said, slower than in Delphi.
Anyway, this algorithm was a once off study for me, the full blown run took the Delphi version more than a week, so I am not going to repeat that with Lazarus;-)
At least I know now about a workaround for this specific issue and that I can migrate Delphi apps to Lazarus.
In case Delphi Community Edition licenses keep on causing problems, there will be an alternative.
Thanks again.