DataGrid usses UI virtualization in order to paint only whats visible on the view port area.
This reduces the number of UI elements which created and therefor makes it better in memory and performance.
However, When you are dealing with ObservableCollections which contains thousands of Items you should consider using also Data virtualization techniques.
I would recommend to go KIS (Keep It Simple) and go ahead and try the simplest approch:
Just use the .NET ObservableCollection.
If you are experinced laggy UI during updates you need to consider trying some kind of ObservableCollection which allows blocking UI updates during update phase (In case you need to update the collection in lots of items in short time).
If you are experince laggy UI during scrolling or selcting, or your memory is too high, you need to consider Data virtualization also.
Good luck