Подскажите, как можно сделать так, чтобы при загрузке данных из интернета (php страница, точнее, сгенерированный ею код), отображались данные по частям, т.е. как скачался блок 4кб, так он и отобразился в memo поле, скачался ещё блок, ещё один отобразился и т.п. и т.д.?

Если это реализовывать через InternetReadFile() wininet.h, то надо ждать пока страница загрузиться полностью (так как данные динамические) и только после этого будет её вывод в поле memo. Для статической страницы, html файла, например, это сделать легко, например так:

Код
        char szData[1024];
        int i=0;
        AnsiString down_text;
        int down = 0, down_kb = 0, down_mb = 0;
        DWORD dwBytesRead=1;

        FHandle=FileCreate("c:\\temp.txt");
        if(FHandle==-1){ShowMessage("Невозможно сохранение на диск");}

        while(dwBytesRead)
        {
            InternetReadFile(inet_http_open_request,szData,sizeof(szData)-1,&dwBytesRead);
            down=down+sizeof(szData);
            FileWrite(FHandle, (char *)szData,dwBytesRead);
        }
        FileClose(FHandle);
        InternetCloseHandle(inet_http_open_request);


Только в этом примере происходит сохранение на диск блока данных, после его загрузки.