半径256の円を描画するのに上記プログラムで4.532msだったのに対してループ中のGFILLを1つに減らしたら5.179msでした。
GFILLを1つに減らしたら1回のループ処理は軽くなるのですが、ループ回数が2倍に増えることによって縦線の長さを求める平方根演算回数が2倍に増えるのとREPEAT〜UNTILループそのものの処理も2倍に増えるためその分だけ処理が重くなり結果としてこのアルゴリズムではループ中にはGFILL2つが最適ではないかと思います。
これが最速というわけではなく円描画のアルゴリズムは多数あるためもっと高速なアルゴリズムは存在しますが、この数倍〜数10倍のサイズのプログラムになると思います。
お絵かきソフトのブラシに使うならば60fps出れば十分なのでそこまで速度に拘る必要はないと思います。(重くなるのは特殊なブラシなのでそれは円の描画アルゴリズムを変えてもあまり速度の向上は望めない)
ちなみに私のPETIT PAINT 2 QSPではGIRCLEが用いられています。