Why are you changing the value of x inside the for loop? The worst thing you could possibly do in a for loop is to change the value of either the iterator (i) or the constant (x) INSIDE the loop.
Are you actually wanting to do this?
StringBuilder str = new StringBuilder();
var x = 10;
for (int i = 0; i < x; i++)
{
DateTime sixmonthsfromnow = DateTime.Now.AddMonths(i+6);
str.AppendLine(sixmonthsfromnow.ToString("yyyy MM dd"));
}
MessageBox.Show(str.ToString());
EDIT =============
Whoever voted this a 1 - post your own solution if you think mine is so bad. FFS.