1) Create an array of all possible pair sums [O(N^2)]
2) Sort this array in ascending order [O(N^2 * Log N)]
3) Now this problem reduces to finding 2 numbers in a sorted array that sum to a given number X, in linear time. Use 2 pointers: a LOW pointer starting from the lowest value, and a HIGH pointer starting from the highest value. If the sum is too low, advance LOW. If the sum is too high, advance HIGH (backwards). Eventually they will find that pair or cross each other (this can be easily proven). This process takes linear time in the size of the array, i.e. O(N ^ 2)
This gives a total time of O(N^2 * log N) as required.
NOTE : This method can be generalized for solving the case of M numbers in O(M * N^(M/2) * log N) time.
-- EDIT --
Actually my response is very similar to Dummy00001's response, except the final lookup, where I use a faster method (though the overall complexity is the same...)