ISOLATION_LOCKS specifies the maximum number of rows (counting the user's current row) that should be locked at any given time on any given scan while Cursor Stability isolation is in effect. The user does not have control over which rows are locked or when those locks are released. The user is guaranteed only that the specified maximum number of rows is locked at any given moment for any given cursor.
ISOLATION_LOCKS offers an intermediate solution between Repeatable Read, which locks the entire table, and Committed Read, which does not obtain read locks. Increasing ISOLATION_LOCKS allows more efficient row buffering, but holding many locks can reduce concurrency for a given table.