You can implement this logic in your app. Define a session field called num_participants_finished, set it to 0 initially, then each time a participant finishes, increment it by 1.
On the first page, you can block participants from proceeding if the session is full:
class SorryFull(Page):
@staticmethod
def is_displayed(player):
session = player.session
return session.num_participants_finished > 20
The template for that page would just have a message that tells them the session is full.