Если вы используете более новую версию Delphi, уже должен быть элемент управления TButtonedEdit, который может выполнять вашу работу.
Если нет, я думаю, что вы можете отправить сообщение EM_SETMARGINS в свой TCustomEdit для установки левого и правого полей.
SendMessage(CustomEdit.Handle, EM_SETMARGINS, EC_LEFTMARGIN or EC_RIGHTMARGIN, MakeLong(LeftMargin, RightMargin));