The marker size is in pixels. You can try this code (untested!):
static int CalcualteMarkerPixelSize(double diameterOnXAxis, Chart chart)
{
double innerWidthScale = chart.ChartAreas[0].AxisX.Maximum - chart.ChartAreas[0].AxisX.Minimum;
float innerWidthPct = chart.ChartAreas[0].InnerPlotPosition.Width / 100;
float innerWidthPixels = chart.Width*innerWidthPct;
return (int) (diameterOnXAxis/innerWidthScale*innerWidthPixels);
}