A few things to note, regarding 'App Performance.'
Do you mean?
- The app performs slowly in the Studio (editing)
- The app performs slowly when running the app in a browser
- The app performs slowly when running the app on the PowerApps mobile app
- In all scenarios, the app is slow because the data loads 'slowly' or there are visual delays in the UX?
The reason I ask is that we will want to determine if we need to fix 'subjective' or 'objective' performance issues. In some instances, the app is going to be limited by the connectivity (i.e. on good WiFi, or bad cell service, etc.). In those cases, you can load the data into the app using Collections, and then app will run faster since the operations are against the local collection. If/when you need to refresh the data, or write changes back, the connectivity factor still comes back into play.
As far as the Collect function. This is a function and can be invoked any way that a function can be invoked - not just On Select (here is a list of most (if not all) of the common behavior triggers...the OnX's).
Concurrent will allow you to run multiple function branches at once. This is most advantageous when loading data into collections.
In regards to Collecting data. You are correct that they are limited to 500 records by default. You can change this number under advanced app settings, from 1-2000. NOTE: This may work for your example of ~1000 records, but is not necessarily a long-term fix. If your table exceeds 2000 records, then you will want to consider switching back to a direct connection, or filtering/paging the data to get it into the collection within the delegation limit.

Let me know about what 'app performance' means to you, and we can troubleshoot/tweak based on your needs.