Take a look at lnav, the Logfile Navigator. It has most of the features you're interested in, as well as many others:
- Row Highlighting - You can set bookmarks on lines with the m hotkey. You can then move forward/backward through bookmarks using the u/U hotkeys. Bookmarked lines can also be copied to the clipboard using the c hotkey.
- Filtering - The :filter-in and :filter-out commands can be used to set filters so that only lines that match a given regular expression are shown or not-shown, respectively. Filtering is live, like most things in lnav.
- Large files/Limited Loading - lnav does not load the whole file into memory at any one time, but it does need to read through the whole file at startup to do indexing. So, in practice, loading extremely large files (multi-GB) does not work well.
- Auto-Scroll - When viewing the bottom of the file, the view is automatically scrolled to show the newest lines. When viewing other parts of the file, the view is locked to only display those lines, but new lines are still be indexed on the fly.
In addition to those features, lnav has many others:
- Multiple log files can be loaded at the same time and shown in a single view with messages being sorted by time.
- Log formats are automatically detected and new log formats can be defined using a JSON file with the appropriate regular expressions.
- Compressed (gzip and bz2) files are automatically decompressed.
- The timeline view shows a histogram of messages over time.
- The Pretty-print view will reformat any log message data (e.g. XML, JSON, or any structured data) so it is easier to read.
- Logs can be queried using SQL.
- Syntax highlighting
Here's a screenshot of lnav running in the OS X terminal: