It gave the results like : the server can hadle upto 350 requests/ sec successfully ( without any error ) but when the per second request is 400 then 25% requests fail. So why in overload condition it can handle only 300 instead of 350 ??
That is almost impossible to say based on what you have said so far.
It is possible that the server is overloaded, it is possible that the JMeter test computer is overloaded, and it is possible that you are exceeding the limitations of JMeter in GUI mode (but I doubt it).
You could start by looking at the log files on both your computer running the test, and the server. If JMeter is experiencing difficulties, it usually puts details in the jmeter.log file. Similarly, if your application is experiencing load issues, it should be writing exceptions to the log file.