Do you mean the memory layout is consecutive? Yes. Or do you mean it is packed too, i.e. no gaps? No, you have to cater for alignment, because it is a generic solution and the size of a list entry may depend on packing. As standard it is natural alignment. On some platforms, e.g. 16 bit, it is also affected by page size.
Be careful with pointermath in all cases. It is not for nothing that the list property is documented as "do not use directly"
https://www.freepascal.org/docs-html/rtl/fgl/tfpglist.list.htmlIf the implementation changes from a Pointer array to a PPointer array you are dead. Currently the list is internally a PByte pointer, but TFPGList may contains classes, which are already pointer types. Or not optimal layed out records.