What you describe is the only way to do it. If you want to add rows to the repeater then you must add each row after ACF completes the initialization. Otherwise, you would be asking ACF to do what you don’t want to do. If you are doing a DB query then make sure you get all of your data in one query. Multiple queries will slow things down more than a loop that has to loop through more data.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users