Non fa propriamente un upload multiplo...
Semplicemente ti fa inserire le immagini una alla volta,
ne fa l'upload in una cartella a parte, ne crea il thumbnail
e lo aggiunge nella lista nella text area.
Solo quando tu clicchi su upload le immagini vengono
effettivamente pubblicate e quindi diventano visibili nel
fotoalbum... se ci ragioni un pochino vedi che ci riesci pure
tu a farlo e forse ti viene pure più bellino...
in tanto per darti una mano ti posto il codice per
effettuare un vero upload di "FILE" multiplo.

codice:
<%@ Page Language="C#" AutoEventWireup="True" Debug="true"%>
<%@ Import Namespace="System.IO" %>

<script Language="C#" runat="server">

protected void SubmitButton_Click(Object sender, EventArgs e)
 {
  string filepath = Server.MapPath("./");
  string fileName = "";

  HttpFileCollection uploadedFiles = Request.Files;
  Status.Text = "";

  for (int i = 0; i < uploadedFiles.Count; i++)
   {    
    HttpPostedFile userPostedFile = uploadedFiles[i];
  	try
     {    
      if (userPostedFile.ContentLength > 0)
       {
	    fileName = Path.GetFileName(userPostedFile.FileName);
		Status.Text += "<u><font color=\"red\">File #" + (i + 1) + "</font></u></br>";
		Status.Text += "File Content Type: " + userPostedFile.ContentType + "</br>";
		
		if (userPostedFile.ContentLength > 1024)
		 {
		  Status.Text += "File Size: " + ((double)(userPostedFile.ContentLength) / 1024.0).ToString("N3") + " kb</br>";
		 } // if (userPostedFile.ContentLength > 1024)
		else
		 {
		  Status.Text += "File Size: " + userPostedFile.ContentLength + " bytes</br>";
		 } // if (userPostedFile.ContentLength > 1024) ... else ...
		Status.Text += "File Name: " + userPostedFile.FileName + "</br>";
		if (fileName.ToLower() != Path.GetFileName(Request.ServerVariables["PATH_TRANSLATED"]).ToLower())
		 {
		  userPostedFile.SaveAs(filepath + "\\" + Path.GetFileName(userPostedFile.FileName));
		  Status.Text += "Location where saved: " + filepath + Path.GetFileName(userPostedFile.FileName) + "</br>";
		 }
		else
		 {
		  Status.Text += "<font color=\"red\">Error: It's prohibited upload a file called as this one!</font></br>";
		 }
       } // if (userPostedFile.ContentLength > 0)
      } // try
     catch (Exception Ex)
      {    
       Status.Text += "Error: </br>" + Ex.Message;
      } // catch (Exception Ex)
   } // for (int i = 0; i < uploadedFiles.Count; i++)
  Status.Text += "<center></br><a href=\"" + Path.GetFileName(Request.ServerVariables["PATH_TRANSLATED"]) + "\" title=\"Back\" alt=\"Back\" style=\"text-decoration:none;\">Back to Index</a></br></center>";
 } // protected void SubmitButton_Click(Object sender, EventArgs e)

</script>

<html>
  <head>
  </head>
 <body>
  Back to Index
  <form enctype="multipart/form-data" runat="server"></br>
    Select File1:

    <input id="File1" type="file" runat="Server"/>

    Select File2:

    <input id="File2" type="file" runat="Server"/>

    Select File3:

    <input id="File3" type="file" runat="Server"/>

    Select File4:

    <input id="File4" type="file" runat="Server"/>

    Select File5:

    <input id="File5" type="file" runat="Server"/>

    Select File6:

    <input id="File6" type="file" runat="Server"/>

    Select File7:

    <input id="File7" type="file" runat="Server"/>

    Select File8:

    <input id="File8" type="file" runat="Server"/>

    Select File9:

    <input id="File9" type="file" runat="Server"/>

    Select File10:

    <input id="File10" type="file" runat="Server"/>

    Select File11:

    <input id="File11" type="file" runat="Server"/>

    Select File12:

    <input id="File12" type="file" runat="Server"/>

    Select File13:

    <input id="File13" type="file" runat="Server"/>

    Select File14:

    <input id="File14" type="file" runat="Server"/>

    Select File15:

    <input id="File15" type="file" runat="Server"/>


    <input id="Submit1" type="submit" value="Upload Files" runat="Server" onserverclick="SubmitButton_Click"/>


    <asp:Label id="Status" runat="server"></asp:Label>       
  </form>
 </body>
</html>
Spero che ti serva ....