یک راه این هست که موقع نمایش از رویداد CellFormatting‌ مربوط به DataGridView استفاده کنید.

private static string GetPersianDate(DateTime date) {
PersianCalendar persianCalendar = new PersianCalendar();
int year = persianCalendar.GetYear(date);
int month = persianCalendar.GetMonth(date);
int day = persianCalendar.GetDayOfMonth(date);
return string.Format("{0:0000}/{1:00}/{2:00}", year, month, day);
}
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) {
if (e.ColumnIndex == 1) {
object value = e.Value;
if (value is DateTime) {
e.Value = GetPersianDate((DateTime)e.Value);
e.FormattingApplied = true;
}
}
}

البته اگه از نوع ?DateTime بجای DateTime‌ استفاده کردین باید جایگزین کنید. با این روش هر بار موقع نمایش هر سلول عمل تبدیل انجام میشه.
راه دیگه تبدیل داده ها بعد از دریافت از دیتابیس و تبدیل مقادیر به رشته تاریخ شمسی (فقط یکبار) هست که البته بستگی به نحوه ارتباط شما با دیتابیس داره.