They added a native solution within Pillow since 6.2.0: https://pillow.readthedocs.io/en/stable/reference/ImageDraw.html#PIL.ImageDraw.PIL.ImageDraw.ImageDraw.text
You now specify the stroke_fill which is the color of the outline and stroke_width which is the thickness of the outline.