tail -f | nl
works for me and is the first what I thought of - that is if you really want the lines numbered from 1 and not with the real line number from the file watched. Optionally add grep if needed to the appropriate place (either before or after nl). However, remember that buffering may occur. In my particular case, grep has the --line-buffered option, but nl buffers it's output and doesn't have an option to switch that off. Hence the tail | nl | grep combo doesn't really flow nicely.
That said,
tail -f | grep -n pattern
works for me as well. Numbering starts again from the beginning of the "tailing" rather than beginning of the whole log file.