I would start by detecting the edge:
img=Import[.......];
img=ImagePad[img,{{-250,0},{0,0}}];
img=ColorNegate[Binarize[img,0.5]];
img=FillingTransform[img];
img=DeleteSmallComponents[img,1000];
img=MorphologicalPerimeter[img,CornerNeighbors->False];
pos=N@PixelValuePositions[img,1];
{len,ord}=FindShortestTour[pos];
pos=pos[[ord]];
{xdata,ydata}=Transpose[pos];
(* add any smoothing function here (like moving average of lowpass filter) *)
len=Length[xdata];
xpos=Interpolation[xdata,InterpolationOrder->3];
ypos=Interpolation[ydata,InterpolationOrder->3];
ParametricPlot[{xpos[t],ypos[t]},{t,1,len}]/. Line -> Arrow
resulting in:

Now we can calculate the distance between each two points:
lens={#+1,ArcLength[{xpos[t],ypos[t]},{t,#,#+1}]}&/@Range[0,len-1];
lens=Prepend[lens,{0,0.}];
lens[[All,2]]=Accumulate[lens[[All,2]]];
ListPlot[lens]
Resulting in:

Now inverting the function and evaluating some 'times':
inverselens = Reverse /@ lens;
inverselens = Interpolation[inverselens];
times = inverselens /@ Subdivide[1, Max[lens[[All, 2]]], 100];
Graphics[Point[Table[{xpos[t], ypos[t]}, {t, times}]]]
