Could you not create a table that fill the entire page, with the number of columns you require and a single row? You could then add multiple paragraphs into the single row under each different column.
Some quick sample code (not tested):
Code:
Dim tbl As MigraDoc.DocumentObjectModel.Tables.Table = tf.AddTable()
Dim col As MigraDoc.DocumentObjectModel.Tables.Column = Nothing
Dim row As MigraDoc.DocumentObjectModel.Tables.Row = Nothing
Dim para As MigraDoc.DocumentObjectModel.Paragraph = Nothing
col = tbl.AddColumn
col.Width = MigraDoc.DocumentObjectModel.Unit.FromInch(3)
col = tbl.AddColumn
col.Width = MigraDoc.DocumentObjectModel.Unit.FromInch(1)
col = tbl.AddColumn
col.Width = MigraDoc.DocumentObjectModel.Unit.FromInch(3)
row = tbl.AddRow
para = row.Cells(0).AddParagraph
para.AddFormattedText("Title 1" + ControlChars.CrLf, MigraDoc.DocumentObjectModel.TextFormat.Bold)
para.AddText("Article number one text.")
para = row.Cells(0).AddParagraph
para.AddFormattedText("Title 2" + ControlChars.CrLf, MigraDoc.DocumentObjectModel.TextFormat.Bold)
para.AddText("Article number two text.")
para = row.Cells(1).AddParagraph
para.AddFormattedText("Title 3" + ControlChars.CrLf, MigraDoc.DocumentObjectModel.TextFormat.Bold)
para.AddText("Article number three text.")