TL;DR
Good user interface should support user tasks to provide the best UX. Think of UX first, and use an approptiate UI pattern to implement it.
General Tasks
I assume there are some common tasks while working with datagrid control:
- Finding a record/set of records with given conditions (e.g. find all the items with given price). Filtering and sorting options over finite set solve it. With infinite scrolling, it's an issue: was the all the set processed, or just loaded part?
- Getting a set of topmost/downmost records (e.g. get 10 topmost selling items). Sorting option over finite set does it perfectly. And we have an issue with infinite scrolling pattern.
- Getting the number of records. A grid control with pagination shows this number.
Pagination
Data grid with pagination supports the mentioned tasks very well. Pagination conveys the idea of the finite number of records in a set. So it's clear for user, that any operations (filtering, sorting) is performed over the whole set. It's aligned with user's mental model.
Infinite Scrolling
User actions on data grid are very tasks-oriented. Observing the large set of numbers is boring task, and the cognitive load is too high. And the worst thing: the filtering/sorting results are totally depend on how deep user has scrolled the page, they are independent of the data itself!
Infinite scrolling is just not appropriate for these kind of tasks.
Alternative to Pagination
Sometimes user needs not to work with the whole set. An example is Google Flight. To simplify UI and reduce cognitive load, Google Flights shows only the best options in a grid, and provides Show longer or more expensive flights link, to disclose more records in a grid.

So the best options depend on user tasks. Think of UX first, and pick the best UI patterns to implement it.
There is a good article to read: Infinite Scrolling, Pagination Or “Load More” Buttons? Usability Findings In eCommerce