Windows NLB is the wrong answer -- in their own FAQ, they says that this is not for teaming/trunking.
Teaming/trunking/link aggregation (different terms for the same thing) has been around for a while now. The official way to do it is 802.3ad. There are some proprietary implementations, including Cisco, Intel, Broadcom and Unix and Linux (not exactly proprietary). SysKonnect/Marvell also does this. Most currently also support the 802.3ad standard or a part of it, as does nVIDIA. In most cases you need a smart or managed switch with trunking support to take full advantage of this (**). This is fairly common for servers with dual gigabit NIC's. An important use for it is redundancy / failover.
In almost all cases, and probably including nVIDIA's (*), it benefits the case where you have many concurrent connections -- each connection goes up to 1 Gb/s, so the aggregate bandwidth does go up to 2 Gb/s (for 2 NIC's), so this of use to servers, but not necessarily for point-to-point single-user links using a single TCP/IP connection, as in a file transfer. You need 2 or more TCP/IP connections to benefit. A single-user scenario generally has only one TCP/IP connection, regardless of the number of physical connections or files being transferred through that connection in one stream.
You use standard gigE cables, just twice as many of them.
Trunking is discussed in this thread:
http://forumz.tomshardware.com/network/Highest-MB-transfer-rate-home-LAN-ftopict21405.html
(*) I have a support request in with nVIDIA to check this.
(**) I've listed a few inexpensive "smart" switches in this thread:
http://forumz.tomshardware.com/network/Gigabit-Switch-Jumbo-Frames-ftopict21520.html
Edit: Clarification on TCP/IP connections vs. physical.