Well, I take back most of what I wrote earlier.
A simple dynamic array of TItem performs better than TFPList in every test except QuickSort, where TFPList is still consistently better in my tests, though only by a small margin. I tested with -O3 optimisation.
I could not get on with your test program, which was too 'procedural' for me to follow easily, so I did my own version which is a bit more object oriented. I think the algorithm comparison is identical, however. Attached for completeness.
Going for iterations much above 10,000,000 gave me heap overflow errors (or locked up my machine).
Typical output is as follows:
------- BENCHMARK with 1000 items ----------
CREATE AND FILL - TEST: [1000 items]
DynArray of TItem: 0.089 ms
DynArray of PItem: 0.12 ms
TPFList of PItem: 0.124 ms
ACCESS - TEST: [1000 items]
DynArray of TItem: 0.007 ms
DynArray of PItem: 0.008 ms
TPFList of PItem: 0.013 ms
QUICKSORT - TEST: [1000 items]
DynArray of TItem: 0.344 ms
DynArray of PItem: 0.181 ms
TPFList of PItem: 0.173 ms
FINALIZATION - TEST: [1000 items]
DynArray of TItem: 0.018 ms
DynArray of PItem: 0.043 ms
TPFList of PItem: 0.08 ms
------- BENCHMARK with 10000 items ----------
CREATE AND FILL - TEST: [10000 items]
DynArray of TItem: 1.089 ms
DynArray of PItem: 1.103 ms
TPFList of PItem: 1.158 ms
ACCESS - TEST: [10000 items]
DynArray of TItem: 0.082 ms
DynArray of PItem: 0.07 ms
TPFList of PItem: 0.13 ms
QUICKSORT - TEST: [10000 items]
DynArray of TItem: 4.371 ms
DynArray of PItem: 2.322 ms
TPFList of PItem: 2.027 ms
FINALIZATION - TEST: [10000 items]
DynArray of TItem: 0.258 ms
DynArray of PItem: 0.786 ms
TPFList of PItem: 0.87 ms
------- BENCHMARK with 50000 items ----------
CREATE AND FILL - TEST: [50000 items]
DynArray of TItem: 3.195 ms
DynArray of PItem: 5.109 ms
TPFList of PItem: 5.08 ms
ACCESS - TEST: [50000 items]
DynArray of TItem: 0.808 ms
DynArray of PItem: 0.941 ms
TPFList of PItem: 1.289 ms
QUICKSORT - TEST: [50000 items]
DynArray of TItem: 21.935 ms
DynArray of PItem: 12.674 ms
TPFList of PItem: 10.96 ms
FINALIZATION - TEST: [50000 items]
DynArray of TItem: 0.619 ms
DynArray of PItem: 8.389 ms
TPFList of PItem: 8.727 ms
------- BENCHMARK with 1000000 items ----------
CREATE AND FILL - TEST: [1000000 items]
DynArray of TItem: 43.389 ms
DynArray of PItem: 52.806 ms
TPFList of PItem: 46.093 ms
ACCESS - TEST: [1000000 items]
DynArray of TItem: 14.524 ms
DynArray of PItem: 15.844 ms
TPFList of PItem: 20.588 ms
QUICKSORT - TEST: [1000000 items]
DynArray of TItem: 323.348 ms
DynArray of PItem: 261.171 ms
TPFList of PItem: 244.879 ms
FINALIZATION - TEST: [1000000 items]
DynArray of TItem: 5.788 ms
DynArray of PItem: 199.68 ms
TPFList of PItem: 205.156 ms
------- BENCHMARK with 10000000 items ----------
CREATE AND FILL - TEST: [10000000 items]
DynArray of TItem: 381.413 ms
DynArray of PItem: 447.635 ms
TPFList of PItem: 446.729 ms
ACCESS - TEST: [10000000 items]
DynArray of TItem: 115.339 ms
DynArray of PItem: 129.613 ms
TPFList of PItem: 194.798 ms
QUICKSORT - TEST: [10000000 items]
DynArray of TItem: 3865.828 ms
DynArray of PItem: 4271.55 ms
TPFList of PItem: 4109.075 ms
FINALIZATION - TEST: [10000000 items]
DynArray of TItem: 57.777 ms
DynArray of PItem: 2344.408 ms
TPFList of PItem: 2457.059 ms