Only real solution I know of:
Deleting access rows through a relation wouldn’t use any updates with glide data sources. It’s a direct delete action without the need to loop.
If you want to use the toggle, I would still replace it with a button or custom AI component that just adds or removes the access row. But I don’t think you need that. When importing students, I would also import into the access table. When you are ready to remove access for the students, whether you rely on a toggle Boolean or not, use a relation or query to the access table to get only the students you want to delete and just delete through the relation/query. Delete can delete multiple browser through a relation without complex looping workflows.
Adding rows to the user and access table should be the only hard part. Removing rows from the access table is super easy as long as it has enough information in it to build your relation or query.