Я видел ваш вопрос о переполнении стека, где он был действительно "слишком широким", как он сформулирован, но он заинтриговал меня.
Это можно сделать, хотя и не полностью автоматически, вручную и / или с помощью VBA.
- Выберите любой (пустой) абзац и примените к нему Frame. Команду «Insert Frameможно найти на вкладке «Developer» на ленте, в группе «Элементы управления», в старых элементах управления. Это четвертый элемент управления слева

- Размер рамки, примените размер шрифта, который вы хотите для чисел и т.д. 
- Щелкните правой кнопкой мыши рамку, чтобы перейти в диалоговое окно "Формат рамки". Для горизонтального положения выберите Outsideотносительно страницы и при необходимости отрегулируйте расстояние от текста. Вертикальное положение должно быть 0 относительно абзаца. Убедитесь, что "Переместить с текстом" и "Блокировка привязки" активированы. Когда диалоговое окно подтверждено, рамочный абзац должен переместиться к внешнему полю непосредственно следующего абзаца.
- Создайте новый стиль из этого абзаца - он будет включать определение фрейма. 
- Проверьте стиль, введя или выбрав другой пустой абзац и применив к нему стиль.
Нумерация может быть сгенерирована путем размещения поля SEQ в каждом кадре с последующим обновлением полей в документе.
На этом этапе вручную можно было бы сгенерировать нумерацию. Долгая задача, конечно, для большого документа. Следующий код будет циклически повторять все абзацы в документе, вставляя пустой абзац, поле SEQ и форматируя его со стилем. В конце все поля обновляются.
Это почти наверняка (основываясь на снимках экрана, которые вы показываете) вставит больше чисел, чем вы хотите. Вы можете либо пройти и удалить их вручную, либо изменить код, чтобы игнорировать абзацы, которые соответствуют определенным критериям, которые не должны быть пронумерованы, или изменить код, чтобы пропустить эти абзацы при создании фреймов.
В этом коде стиль для фреймов называется NrPara ; если вы используете другое имя, вам нужно изменить это.
Sub NumberParas()
    Dim doc as Word.Document
    Dim Para As Word.Paragraph
    Dim rngPara As Word.Range, rngParas() As Word.Range
    Dim numParas As Long, counterPara As Long
    Dim numParaStyle As Word.style
    Dim rngNumPara As Word.Range
    Dim sSEQ As String
    sSEQ = "SEQ ParaNum"
    Set doc = ActiveDocument
    numParas = doc.Paragraphs.Count
    ReDim rngParas(numParas - 1)
    'Get an array of the paragraph ranges
    For counterPara = numParas To 1 Step -1
        Set Para = doc.Paragraphs(counterPara)
        Set rngPara = Para.Range
        Set rngParas(counterPara - 1) = rngPara
    Next
    'Insert a paragraph above each existing one, format and insert SEQ field
    For counterPara = LBound(rngParas) To UBound(rngParas)
        Set rngPara = rngParas(counterPara)
        With rngPara
            .InsertBefore vbCr
            .Collapse wdCollapseStart
            .Fields.Add rngPara, wdFieldEmpty, sSEQ, False
            rngPara.style = "NrPara"
        End With
    Next
    doc.Fields.Update
End Sub