I believe you can do this with a BindingSource object as the intermediate to your DataGridView and your DataTable. You can set the Filter property of the BindingSource to whatever you need.
First, set the BindingSource as the DataSource to your DataGridView and set up the filter:
dgvUnreadMails.DataSource = aBindingSource;
aBindingSource.Filter = "something";
later on, after your DataTable (dtList) has been loaded, you can set it equal to the DataSource of the BindingSource.
aBindingSource.DataSource = dtList;