You could make your own function for adding text based on the method of plot.fscores()
If you don't want to do it programmatically, you can use a dump of the function with dump("plot.fscores")
and make the changes in 'dumpdata.R'.
library(ltm)
dump("plot.fscores")
## now we can make the following changes to 'dumpdata.R':
## 1. change the function name. I used 'myPlot.fscores'
## 2. add formal arguments to the argument list so we can pass them
## to text(). I added
text.labels = NULL
col.labels = NULL
## 3. on line 28, change the entire line to
text(Beta, rep_len(0L, length(Beta)), labels = text.labels, col = col.labels)
And now we can give it a try ...
fsc <- factor.scores(rasch(LSAT))
myPlot.fscores(fsc, include.items = TRUE,
text.labels = rownames(fsc$coef), col.labels = seq_len(nrow(fsc$coef)))

Otherwise you can write some code...
## copy plot.scores for modification
ff <- plot.fscores
## add an argument to ff() - I use 'text.labels' to avoid multiple matching
fm <-formals(ff)
formals(ff) <- append(fm, list(text.labels = NULL), length(fm)-1)
## change the stripchart() call to a call to text() with out new argument
body(ff)[[6]][[3]][[2]][[4]][[6]] <- quote(
text(Beta, rep_len(0, length(Beta)), labels = text.labels)
)
## see if it works
fsc <- factor.scores(rasch(LSAT))
ff(fsc, include.items = TRUE, text.labels = rownames(fsc$coef))

I'll let you have a go at the colors on that one. And because I'm reasonably terrible with recursion, I have no simpler way to find body(ff)[[6]][[3]][[2]][[4]][[6]]
other than to investigate the function body manually. I know there's a recursive function out there to locate parts of a function body, but I can't remember the name of it right now and searched without success.