I'm knitting EZ's pi shawl so I think I can make an intelligent suggestion for an approach:
Cast on a number N divisible evenly by 6. Join.
Knit N/6 rounds. Decrease by way of (k1, k2tog) around; you now have N-(N/3) stitches on the needle, or N1.
Knit N1/6 rounds. Decrease by way of (k1, k2tog) around; you now have N1-(N1/3) stitches on the needle, or N2.
Knit N2/6 rounds Decrease...
Ad naus.
An example:
Cast on 864. I'll recommend crocheting a chain in a contrast yarn and picking up stitches through the bottom loops. You can zip it off later to apply a nice back-and-forth border that will be much more elastic than a standard long-tail cast on.
Knit 864/6 rounds, or 144 rounds. Decrease by (k1, k2tog) around: 864-(864/3) or 864-288=576
Knit 576/6 rounds, or 96 rounds. Decrease by (k1, k2tog) around: 576-(576/3) or 576-192=384
Knit 384/6 rounds, or 64 rounds. Decreasey by (k1, k2tog) around: 384-(384/3) or 384-128=256
Etc Etc Etc
At some point you have to switch to DPNs, but there ain't no short rows nowhere nohow.
Note: this is basically EZ's pi shawl from the outside in; same progression in stitch count, merely reversed. As long as you cast on a number divisible evenly by SIX and use (k1, k2tog) on the decrease rounds the thing should block out to a circle when all is said and done. For more delineation between segments use (k2tog, yo, k2tog); produces the same rate of decrease but makes an eyelet round.
Me, I think I'd rather work an applied garter-stitch border on 800+ stitches and have no casting-off than try to keep track of the count while casting on that number of stitches.