I am not sure what you are asking about. Do you mean that you want to have different names for the properties in the mongo documents from the column names in the sql tables?
If this is what you want then I don't know how this could be made automatically. Just add a dictionary that will map the sql column names with the mongo properties names:
// ...
Dictionary<string, string> _mapping = new Dictionay<string, string>();
_mappaing.Add("columnA", "propertyA");
// and so on
// ...
try
{
foreach (DataRow dr in dt.Rows)
{
BsonDocument bson = new BsonDocument();
for (int i = 0; i < dr.ItemArray.Count(); i++)
{
// here use the mapped name instead of the colmn name
bson.Add(_mapping[dr.Table.Columns[i].ColumnName], dr[i].ToString());
}
collection.Insert(bson);
}
}