Update as of 8/2020
Some other worthy contenders not mentioned in the original answer are Tilix and Terminator (check them out!), and my top pick is still for the most part
Qterminal. Linux terminals in general seem to be getting closer to parity with iTerm2.
Current as of 9/2018
Here's a short list of iterm2 (v3) features:
- True color (16 million color) support
- Split panes
- Show images (i.e. imgcat)
- Show inline images e.g. beer mug for homebrew
- Full support/integration for various shells (e.g. zsh, fish)
- Hotkey support (e.g. drop-down terminal)
I haven't even come close to listing them all, although these are the ones I use/care about the most.
I cannot find a single linux terminal that completely matches this feature set (much less all the ones I didn't mention) but there are linux terminals that come pretty darn close, and can do things that iterm2 can't do (like set per window/pane background images). So here are a few terminals that are probably closest to iterm2 in terms of feature parity:
This is an abbreviation of qt terminal. It has full true color support, a dropdown hotkey, transparency, background image, panes, tabs, shell integration. Install via apt. Cons: no built-in way to preview images, it's handling of background images can be wonky.
The default KDE terminal (e.g. for kubuntu) has true color, tabs, background image, transparency. Cons: no hot-keyed drop down window, no independent panes, handling of background images can be wonky.
A terminal that AFAICT was just written by one guy with a surprisingly rich feature set: has true color, horizontal splits, transparency, shows images, shell integration. Cons: no background images (there's an issue open), no vertical splits without configuration, no drop down, and while it has packages for several distros ubuntu isn't one of them (have to manually install deps and compile from source).
The default terminal of the Enlightenment desktop. It by far has the best image handling of any terminal emulator I've ever used and has been my daily driver for a couple of years now. Has resizable independent panes (vertical and horizontal), tabs, transparency, shell integration, but it lacks true color support (maintainer says he will not be adding it) which is becoming increasingly annoying as a heavy neovim/ncurses user. Cons: 256 color only, no drop down, package in repositories is extremely out of date and installing/compiling the latest version of the EFL dependencies literally takes half an hour.
There are a lot of other worthy terminal emulators: rxvt-unicode, suckless, termite, etc. but they all have glaring flaws, sometimes even worse than the above. Suckless (st) for example keeps it's configuration in a header file meaning every config change requires a recompile. Many of them (including some of the ones I highlighted above like konsole) seem to be configurable only via mouse, which is beyond annoying for a terminal emulator.
Many might consider the existence of tmux to make splits/panes a non-issue for the terminal itself. I don't disagree, but YMMV.
There's a glaring omission: I haven't mentioned any of the electron-based projects like hyper. That's because I personally keep about 12 different terminal sessions going at a given time, and electron is just too greedy for that kind of usage. Which is a shame, as some of those offerings have impressive feature sets. If you tend to have fewer sessions open you might give one of them a try, I've played with extraterm and it seems a little more in line with what iterm2 offers.
I wish everyone luck, but my quest for the one true terminal emulator continues onward.