I am not sure if I understand the question 100% but if I'm right you just want to access single bytes from a piece of memory.
There are several good ways of which I show two here to get the idea.

[pascal]var
DataPtr: Pointer;
BytePtr: ^Byte;
DataSize: Integer;
i: Integer;
B: Byte;

type
TByteArray = array[0..100000000] of Byte;
PByteArray = ^TByteArray;
var
BA: PByteArray;
begin
DataSize := 100;
GetMem(DataPtr, DataSize);
FillChar(DataPtr^, DataSize, 1);

// method 1: typed pointer increment
BytePtr := @DataPtr^;
for i := 0 to DataSize - 1 do
begin
B := BytePtr^;
Inc(BytePtr); // type pointer increment: address of BytePtr moves 1 byte
end;

// Method 2: array typecast
BA := @DataPtr^;
for i := 0 to DataSize - 1 do
begin
BytePtr := @BA^[i]; // make byteptr point to the right byte
B := BA^[i]; // fill byte with value
end;

FreeMem(DataPtr);
end;
[/pascal]