I think that it is not easy to do it such manner.
First, TMemo works with Utf8 characters, so all string manipulations must be performed using Utf8XXX functions.
Second, line breaks in TMemo are performed both by the line ending sequence and by the width of the visible window. But SelStart is the absolute value from the start of the text, i.e. for lines broken by the LineEnding, it will increase by the length of the LineEnding, for the "width of the window" - no increase. As a result, it is difficult to calculate the SelStart value for the start of a certain line.
It is easier, if you are not afraid of actually changing TMemo, to upload it to TStringList, do operations there, and then load it back.