You can create the grid lines using geometry generator by creating buffers around the south pole. The [distance between Degrees of Latitude is ca. 111 km][1]. Use this value and mulitply it, using `array_foreach` to create several grid lines at once, here with an interval of 5 degrees (last number in line 3). For adding the antimeridian, see below.

Use this expression: this works if the layer in question is in `EPSG:4326`! If the layer is in `EPSG:3031`, delete the `transform()` function (lines 4 and 9 to 11):

```
collect_geometries (
	array_foreach(
		generate_series (0,30, 5),
		transform (
			buffer (
				make_point (0,0), 
				111000*@element, 
				200
			),
			'EPSG:3031', 
			'EPSG:4326'
		)
	)
)
```
*Red lines generated with geometry generator and the expression from above; the layer is in `EPSG:4326`:*
[![enter image description here][2]][2]


[![enter image description here][3]][3]


**Edit: adding antimeridian**

On my first screenshot, the antimeridian seems to appear. This is because I (accidentally) set an offset of 5 degrees for x - so in fact it is not the antimeridian. Maybe that's a bug.

To add the antimeridian, use the same approach: create it with geoemtry generator. For a layer in `EPSG:3031`, use this expression - if the layer is in EPSG:4326, delete lines 1 and 5 to 7:

```
transform (
	make_line (
		make_point (0,-90),
		make_point (180,0))
	,
	'epsg:4326',
	'epsg:3031'
)
```

You can combine both expressions (for parallels and the antimeridian) in one expression using `collect_geometries (expression_1, expression_2)` (or, similarily, the `union()` function). Be aware to keep or delete the `transform()` function, depending on the layer's CRS. One of the two expressions must have the transform, the other not. As well, the parallels (from the expression above) need to be converted to lines with the function `boundary()`.

So for a layer in `EPSG:4326`, the expression is (for `EPSG:3031` see screenshot):

```
collect_geometries( 
	collect_geometries (
		array_foreach(
			generate_series (0,30, 5),
			transform (
				boundary (
					buffer (
						make_point (0,0), 
						111000*@element, 
						200
					)
				),
				'EPSG:3031', 
				'EPSG:4326'
			)
		)
	),
	make_line (
		make_point (0,-90),
		make_point (180,0)
	)
)
```

*Screenshots, using a layer in `EPSG:3031`:*
[![enter image description here][4]][4]

[![enter image description here][5]][5]



  [1]: https://www.thoughtco.com/degree-of-latitude-and-longitude-distance-4070616
  [2]: https://i.sstatic.net/17CIa.png
  [3]: https://i.sstatic.net/JCLwY.png
  [4]: https://i.sstatic.net/rkzgk.png
  [5]: https://i.sstatic.net/TZWwj.png