C#5.0ならこうか
async void button_click(object sender, EventArgs e) {
for (int x = 0; x < filecount; x++) {
Image img = await new Task<Image>(() => Bitmap.FromFile(files[x])).Start();
imagelist2.Images.Add(img);
bufferdListView1.Items.Add(files[x],x);
}
}