O que você tá fazendo é terminar o algoritmo no momento que encontrar o primeiro palíndromo, em vez de testar TODAS as possibilidades e, no final, ver qual é o maior palíndromo encontrado. Exemplo do que tava acontecendo:
....
....
924 x 929 = 858396
924 x 928 = 857472
924 x 927 = 856548
924 x 926 = 855624
924 x 925 = 854700
924 x 924 = 888888 // o programa termina aqui sendo que ainda falta milhões e milhões de multiplicações pra testar
Outro problema é a condição do segundo for numberTwo > numberOne. Dessa forma você só vai testar multiplicações em que o segundo fator (numberTwo) é maior que o primeiro (numberOne). Exemplo do que tava acontecendo:
....
....
994 x 999 = 993006 (tabuada do 994)
994 x 998 = 992012 (tabuada do 994)
994 x 997 = 991018 (tabuada do 994)
994 x 996 = 990024 (tabuada do 994)
994 x 995 = 989030 (tabuada do 994... ops, o numberTwo ficou maior que numberOne, vou para a próxima tabuada, 993)
993 x 999 = 992007 (tabuada do 993... sendo que ainda faltava 994 números pra testar na tabuada anterior)
Programa corrigido:
public static void main(String[] args) {
int largestPalindromeUntilNow = 0;
int largestPalindromeFactorA = 0;
int largestPalindromeFactorB = 0;
for (int numberOne = 999; numberOne > 99; numberOne--) {
for (int numberTwo = 999; numberTwo > 99; numberTwo--) {
int product = numberOne * numberTwo;
if (isPalindrome(product)) {
if (product > largestPalindromeUntilNow) {
largestPalindromeUntilNow = product;
largestPalindromeFactorA = numberOne;
largestPalindromeFactorB = numberTwo;
}
}
}
}
System.out.printf("Largest Palindrome: %s x %s = %s",
largestPalindromeFactorA, largestPalindromeFactorB, largestPalindromeUntilNow);
}
Qualquer linha de código que você não entendeu, por favor me avise 
E só mais uma coisa: esse seu método que verifica se é palíndromo está perfeitamente funcional, mas eu particularmente acho essa forma mais fácil de entender:
static boolean isPalindrome2(int number) {
String numberString = String.valueOf(number);
StringBuilder numberReversed = new StringBuilder(numberString).reverse();
return numberString.equals(numberReversed.toString());
}
Ela transforma em String e vê se o reverse() dela é igual a ela mesma. Mas isso é questão de gosto, apenas.