Execute a query which returns uniformly at maximum 100 records
You could assign a row number to your results, then show every Xth record from that result.  You do this by calculating the total number of records, and dividing that by your desired number of intervals.  If the modulo is 0, spit out that record.

In my example below, I want to 10 records (approx) from the sysobjects table, sorted alphabetically by name.  The result is 10 records.   

This was a lot harder to explain than to write.

;with SummaryTable as
(
select row_number() over (order by name) as RowNum,
       name,
       (select count(*) from sys.objects) as 'TotalCount'
 from sys.objects
)
select *
  from SummaryTable 
 where RowNum % (TotalCount / 10)  = 0