Sql Server stores data on 8-kilobyte data pages. A page is one of the levels of granularity when locking resources. Other levels include row, extent, table.
The database acquires the appropriate level of locks to minimize the cost, so instead of locking individual rows it could decide to lock the complete page, to minimize the number of locks needed, or it could even decide to lock a complete table, depending on the operation being performed.
Here is a list of the different granularity levels.
Lock Granularity and Hierarchies
Depending on the size of the rows in the table it could be one row, or as many as 65536 rows (if each row was a single bit column and there were no other columns).