dataTable as any other component(any one, it's JSF paradigm and not some RF "feature" ) will call the data on every decode/rendering. So your data model should consider caching the data and getting only needed range on it's own. Simple lists could be passed if them are lightweight and not mapped to db or get from some services. Visit our demos related to DataModel's in order to check how to implement something basic.
So then you will be free to use ajax updates as you need (e.g. update sorting for your case via Ajax) without warying about additional dataModel invocations.