So you want two disassembly listings side-by-side. If you mean for manual browsing of disassembly listings coming from the same database, there's an easy way to accomplish this: View->Open subviews->Disassembly to open a new disassembly window; minimize/close all non-disassembly MDI windows and then Windows->Tile windows vertically. You can then save this desktop view under Windows->Save desktop, and load it as desired via Windows->Load desktop. (IMO, desktop save/load is a nice and under-appreciated feature of IDA.) If you go this route, you'll probably end up tweaking Options->General->Disassembly->* indentation for readability. This may be more rudimentary than what you had in mind, but it does the trick.
If you're intending to do this programmatically inside of IDA in a single window with listings coming out of either the same or different databases (as evidenced by the source code directory in Eclipse in the screen shot), you've got some work to do.
If using a different database, the first question is how are you going to acquire the relevant data from the other database? This part is somewhat involved because it isn't directly possible in IDA to programmatically open that database inside of the currently-running instance and retrieve its contents. You could indirectly do something like Atli's PE scripts, but this might be undesirable for other reasons. The solution employed by a few open-source plugins (take a look at EBDS, for instance) has been to spawn an instance of IDA and have custom code extract and transmit this data to the first instance somehow (usually involving a custom file format/database schema -- see pIDA from PaiMei or IDACompare, and additionally see Essense for more along these lines). IDA's representation of a disassembly line with colors may pose an issue for serialization purposes.
As for the GUI, if you want to keep it inside of IDA this new feature in the 5.1 SDK offers advances over previous GUI functionality, but it comes with some limitations.
Yes the idea is to load other idb file, get is functions info and compare them with the functions of currently loaded file. I thought that IDA had some function to load another idb. I have EBDS and that is what I'm using for diffing (didn't know it was open source, will take a look at it and the others you wrote).
For the gui, I think I will be using IDA ability to generate graphs (found some open source plugins that exemplify that).
Best regards and thanks for the enlightenments,
saphex