I would give an answer of "no, but it is remarkably similar."

Here's my reasoning.

Information networks can route traffic, basically, in terms of circuit switching or in terms of packet switching.  Circuit switching offers many more guarantees than packet switching, but this comes at a cost, and so circuit switched networks can't degrade gracefully.  The classic circuit-switched network is the PSTN, and a virtual circuit would be something like a DS0 on the PSTN.

A DS0 basically works as part of a bundle of connections, usually in a DS1.  In a DS1, you will have a bundle of DS0's which are transmitted together, frame-by frame in time-division manner, so each DS0 is guaranteed a specific bandwidth, timeliness, etc. by the underlying network transport.

Another way to look at this is that a physical circuit would be something like a cat6 cable running between two terminals.  You can send data back and forth over the wires at guaranteed speeds, and no other communications are going to interfere with that.  Indeed the early telephone networks worked by connecting physical circuits (that is copper wires) using manual or electromechanical switches.  As this was computerized, the circuits were virtualized and digital (as opposed to analog) information was sent down wires on a time division basis again with a circuit reserving a slot in the time division schedule.

TCP/IP is fully packet-switched.  It makes no provisions for virtual circuits.  This is why things like QoS are often necessary when trunking VOIP (a virtual circuit has built-in QoS guarantees).  You have no guarantee that all packets will be routed alike.  They may not come through in the same order.  They may not come through in a timely manner (from a connection-oriented perspective).  So you can't really build virtual circuits per se on top of a packet switched protocol like IP.

TCP comes somewhat close and in fact can work as a somewhat imperfect substitute.  It offers as many of the guarantees as it can. This is why, when implemented on TCP/IP, H.323 substitutes TCP connections for virtual circuits.

So again, the answer is that they are similar but different.