pandas resampling without performing statistics

You can resample to 15 min and take the 'first' of each group:

In [40]: df.resample('15min').first()
Out[40]:
                            A         B         C         D
2011-01-01 00:00:00 -0.415637 -1.345454  1.151189 -0.834548
2011-01-01 00:15:00  0.221777 -0.866306  0.932487 -1.243176
2011-01-01 00:30:00 -0.690039  0.778672 -0.527087 -0.156369
...

Another way to do this is constructing the new desired index and do a reindex (this is a bit more work in this case, but in the case of a irregular time series this ensures it takes the data at exactly each 15min):

In [42]: new_rng = pd.date_range('1/1/2011', periods=20, freq='15min')

In [43]: df.reindex(new_rng)
Out[43]:
                            A         B         C         D
2011-01-01 00:00:00 -0.415637 -1.345454  1.151189 -0.834548
2011-01-01 00:15:00  0.221777 -0.866306  0.932487 -1.243176
2011-01-01 00:30:00 -0.690039  0.778672 -0.527087 -0.156369
...

Function asfreq() doesn't do any aggregation:

df.asfreq('15min')