Is it something like this you are after?

Code:
var
  Buf : array of byte;
  Str : TStream;
...
SetLength(Buf,2000);
...
Str.Read(Buf[0],1000);   //Read a chunk of data to the beginning of buf
...
Str.Read(Buf[500],1000);  //Read a chunk of data to position 500 in buf