I would infer that he means loop-based as distinct from set-based programming, which is a better way to code with SQL.
For example, in a loop-based mental model, you would change a bunch of rows by running a query, fetching the rows one-by-one, changing the value of a field, and post each row back to the database. This runs N+1 SQL queries to change N rows. It's often the consequence of using ORM tools like Entity Framework or Active Record.
In a set-based mental model, you'd use a single SQL UPDATE
statement to change all the rows in one operation. You don't have to fetch any data back to the application, it all happens on the database server. And you only have to run a single SQL statement. This is more efficient, but most ORM tools fail to support this technique (except by allowing you to bypass the ORM and execute custom SQL directly).
Re comments from other folks: We can come up with answers for what we think "loop-based" means, but this will never answer what your coworker meant when he said it. If he backed off, then he might not know how to be more articulate about it. If so, you'll never know what he meant.
Re ORMs are smarter than that these days, I'd like to hear some examples. I'm not denying it -- I'm genuinely interested in an example of an ORM that can invoke an update against rows it hasn't fetched. That is, within the "ORMish" interface, not by breaking the abstraction.