Can we program Nxt2 in C++ under Visual studio 2010?
I think that all you might need is the Microsoft Robotics Developer Studio. The examples that I could find all refer to C#, VB.Net, or the included VPL languages but there isn't any reason you wouldn't be able to reference the same objects from managed C++.

It does look like there might not be a full set of services for all of the more recent parts judging from some of the comments in one of the examples that I saw, but the author of that article does have a few other notes elsewhere.

After installing and playing around with it a bit myself, I did find a link to the MSDN documentation for using NXT with MRDS that you can look through before you get started. (I wasn't able to give much of it a try yet because I'm out of batteries with my NXT brick.)

Beyond that a Google search for "mrds nxt" found the following likely useful items:


CodeProject example (C#) with a link to a previous article on the same site.
An MSDN tutorial.
A whole slew of examples on CodePlex