as it looks like nobody solved it so far, I want to suggest this solution, even after 13 years:
// e.g. or any other convenient stream
strStr := TStringStream.create('');
//..
arcItem.Stream := strStr; // set your stream
arcItem.Selected := True;
archive.ExtractSelected(''); // extracts to your stream, DestinationDir seems to be ignored, even if provided
strStr.Position := 0; // read stream from the beginning
OutputDebugString( PChar( strStr.DataString ) );
//..