I haven't used it myself, but maybe this code from Neven (which types out text boxes letter-by-letter) is a head start: