Нарисуйте текст несколько раз с помощью цвета обводки со смещением, а затем, наконец, еще раз с цветом заливки:
def stroke_text(draw, font, text, x, y, stroke_size, stroke_color, fill_color):
for xo in range(-stroke_size, stroke_size + 1):
for yo in range(-stroke_size, stroke_size + 1):
if xo == yo == 0:
continue
draw.text((x + xo, y + yo), text, fill=stroke_color, font=font)
draw.text((x, y), text, fill=fill_color, font=font)
stroke_text(draw, font, 'HELLO', 60, 270, 3, 'red', 'white')