I'm not an expert at JMeter, but I thought I'd offer some things I have learned about it for consideration. JMeter's advantage in its ability to load test applications comes from the fact that it can simulate browser requests to the web server WITHOUT using browsers. This is because JMeter tests are engineered to send HTTP requests directly to the server, an action which can be scaled very easily from a single machine, or at least a small number of machines.
JUnit/TestNG tests using Selenium should be focused on Web Site functionality, NOT load testing. Selenium's value is in its ability to interface with various types of browsers, which allows you to run the same tests against each type without having to custom design your tests for each type. Selenium Grid, by extension, helps you to expand the range of your tests to include browsers that don't play well running on the same machine with other browsers. This is especially useful for testing against multiple versions of the same browser. For example, I.E. 11 will not allow you to run I.E. 10 on the same machine. Trying to install it on the same machine triggers an upgrade. Selenium grid allows you to have 4 machines with 4 different versions of I.E. installed on it.
On the other hand, browsers include a LOT of overhead. So the only way to get close to creating enough client requests to push a server's load capacity to the max is by using Selenium Grid to employ 10's 100's or maybe even 1000's of machines to hit the server simultaneously. Very inefficient.
JMeter tests may need to use multiple machines to challenge a high powered server, and it has utilities for setting up grids similar to Selenium grids for just that purpose. However, because those machines would all send HTTP requests without using browsers, the same load can be sent to the server with a JMeter grid using a fraction of the machine power that a Selenium grid would use.
If you want to utilize the rich plethora of tests you have set up using Selenium using JMeter, I would recommend you tap into JMeter's recording capabilities. Set up JMeter to listen to a browser that your TestNG w/ Selenium script is hitting, and run all of your tests through that one browser single threaded. JMeter will record all of the various HTTP requests the browser sends to the server. You can then take that recording and with a little editing, produce load tests with the rich set of request types you are looking for.
Another advantage of this approach is that, if you find that the server has a bottleneck, you can more easily break apart the different types of tests into smaller modules to pinpoint the exact commands that are causing the server trouble. This, in turn, will allow you to write bug reports that are much more valuable to your developers.
Hope that helps folks in the future.