My guess would be that the amount returned to a user requesting 100M rows would be the
db_block_size * db_multiblock_read_count / rowsize (in bytes).

So by this token I believe that the db buffer cache would eventually fill up but would fill up at the rate of
(db_buffer * db_block_size) - db_block_size * db_multiblock_read_count.

Obviously the 'oldest' data would be aged out first and then get overwritten first (one user on DB only).

So the answer in my opinion would be
100,000,000 / (db_block_size * db_multiblock_read_count / rowsize).

phew!

What does anyone else think?