I was a little curious so here is the code to load MPO images:
procedure ReadMPO(ImageEnView:TImageEnView; filename:string; imageIndex:integer);
var
  mem_strm:TMemoryStream;
  memPtr:pbyte;
  jpeg_len:integer;
begin
  mem_strm := TMemoryStream.Create();
  try
    // load the full file into memory
    mem_strm.LoadFromFile(filename);
    // calculate the length of the first jpeg
    jpeg_len := IEGetJpegLength(mem_strm);
    memPtr := mem_strm.Memory;
    if imageIndex = 0 then
      // load the first jpeg
      ImageEnView.IO.LoadFromBuffer(memPtr, jpeg_len)
    else
    begin
      // bypass first jpeg
      inc(memPtr, jpeg_len);
      // load the second jpeg
      ImageEnView.IO.LoadFromBuffer(memPtr, mem_strm.Size - jpeg_len);
    end;
  finally
    mem_strm.Free();
  end;
end;
It loads the image in the specified TImageEnView component. imageIndex can 0 or 1 (depending if you want to load first or second image).
IEGetJpegLength is inside "jpegfilt" unit.
For example:
ReadMPO(ImageEnView1, 'dsc00065.mpo', 0);
or
ReadMPO(ImageEnView1, 'dsc00065.mpo', 1);
I tested MPO files from:
http://www.stereomaker.net/sony/stereo/sony_stereo.htm
Hope this helps.