I have implemented a record array, is that what you intended me to use?
What you want to use is up to you. I found it quite easy to use arrays.

dximagelist1.Items[2].picture.LoadFromFile('c:\1.bmp');
This assumes you already have reserved an dximagelist item. But yeah, that works as well.

maybe I have to destroy the sprite and then recreate each time?
Depending how often this is going to happen, it would slow down your game a lot.

I'm not sure what you want, but I'd stay away from the TBackground class, and write your own. It's quite easy to draw a tilemap.

Could you show some code where you're having problems with?