Para la primera duda, puedes desabilitar la ordenación asignando la propiedad AllowSorting=false del DataGrid.
Para la segunda pregunta podrías trabajar con DataView's y utilizar talvez la propiedad RowFilter de ésta para realizar los filtrados y ordenaciones.
http://msdn.microsoft.com/library/de...iltertopic.asp
Saludos